[Python] Numpy Memo

Ein Numpy-Memo, das gerade erst mit maschinellem Lernen beginnt

Referenzmaterial

Import und Verwendung von Numpy

Folgendes wird empfohlen, da die Anzahl der Typen gering und das Verwechslungsrisiko gering ist.

numpy.py


import numpy as np
np.array([2, 0, 2, 0])

Die Basis von numpy ist array. Sie können auch mehrdimensionale Arrays schreiben

numpy.py


import numpy as np
x = np.array([[2, 0, 2, 0],[2, 0, 2, 1]])

Arithmetik des Arrays

numpy.dot function = finde das innere Produkt von Vektoren und das Produkt von Matrizen

"Array" sind Allzweckdaten, die eine Sammlung von Daten beliebiger Dimension darstellen, die nicht der "Matrix" zugeordnet sind.

numpy_array.py


import numpy as np
x = np.array([2, 0, 2, 0])
y = np.array([2, 0, 2, 1])
print(x + y)
print(x * y)
print(x.dot(y))

=> [4, 0, 4, 1] #Element für Element
=> [4, 0, 4, 0] #Element für Element (Achtung)
=> 8            #Innenprodukt

#Matrix x Vektor
import numpy as np
A = np.array([[1, 2, 3],[4, 5, 6]])
x = np.array([7, 8, 9])
print(A.dot(x))
=> [ 50, 122]

#Matrix x Matrix
import numpy as np
A = np.array([[1, 2, 3],[4, 5, 6]])
B = np.array([[1, 2], [3, 4], [5, 6]])
print(A.dot(B))

=>[[22 28]
  [49 64]]

Matrixarithmetik

"Matrix ist eine Klasse, die eine Matrix darstellt" Beachten Sie, dass "Array" und "Matrix" unterschiedlich sind

Merkmale der Klasse np.matrix

numpy_matrux.py


import numpy as np
A = np.matrix([[1, 2, 3],[4, 5, 6]])
B = np.matrix([[1, 2], [3, 4], [5, 6]])
print(A.dot(B)) #numpy.Das Ergebnis der Punktfunktion berechnet das innere Produkt zusammen mit dem Array

=> [[22 28]
    [49 64]]

import numpy as np
A = np.matrix([[1, 2, 3],[4, 5, 6]])
B = np.matrix([[1, 2], [3, 4], [5, 6]])
print(A * B) #Operator in Matrix"*"Berechnen Sie das innere Produkt mit

=> [[22 28]
    [49 64]]

import numpy as np
A = np.array([[1, 2, 3],[4, 5, 6]])
B = np.array([[1, 2], [3, 4], [5, 6]])
print(A * B) #Ich versuche für jedes Element zu berechnen, aber es tritt ein Fehler auf, weil die Formen der Matrizen nicht übereinstimmen.

=> ValueError: operands could not be broadcast together with shapes (2,3) (3,2)

Verschiedene Möglichkeiten, ein Array zu erstellen

python:numpy.array.py


import numpy as np

#Gleiche Differenznummernfolge(Gleiche Differenzbezeichnung)
np.arrange(2, 3, 0.2)
=> array([ 2. ,  2.2,  2.4,  2.6,  2,8])

#Gleiche Differenznummernfolge(Geben Sie Punkte an)
np.linspace(2, 3, 6)
=> array([ 2. , 2.2, 2.4, 2.6, 2.8, 3. ])

#Richten Sie Zore aus
np.zeros((3, 2))
=> array([[0., 0.],
          [0., 0.],
          [0., 0.]])

#Richten Sie eine aus
np.ones((2, 3))
=> array([[1., 1.],
          [1., 1.],
          [1., 1.]])

#Methode
#Erstellen Sie eine Form mit 0 und weisen Sie jedem Element einen Wert zu
import numpy as np

def make_diag(n):
  A = np.zeros((n, n))
  for i in range(n):
    A[i, i] = i + 1
  return A

print(make_diag(4))

=> [[1. 0. 0. 0.]
    [0. 2. 0. 0.]
    [0. 0. 3. 0.]
    [0. 0. 0. 4.]]

#Umformen, die ihre Form ändert, während die Anordnung der Elemente unverändert bleibt
import numpy as np

A = np.arange(0, 15, 1)
print("Inhalt von A.:\n{}".format(A))
B = A.reshape(3, 5)
print("Inhalt von B.:\n{}".format(B))
C = B.reshape(5, 3)
print("Inhalt von C.:\n{}".format(C))

=>Inhalt von A.:
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
Inhalt von B.:
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
Inhalt von C.:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]
 [12 13 14]]

#Verwendung von Zufallszahlen zufällig
import numpy as np

np.random.random((3, 3))
=>array([[0.96781535, 0.64650387, 0.05718226],
         [0.78586557, 0.4422813 , 0.92825971],
         [0.94403786, 0.90600626, 0.85543603]])

#Geben Sie jede Komponente mit einer Funktion an
import numpy as np

def f(i, j):
  return i + j

A = np.fromfunction(f, (3, 3))
print(A)

=>[[0. 1. 2.]
   [1. 2. 3.]
   [2. 3. 4.]]

Extraktion von Elementen / Zeilen / Spalten

numpy.py


import numpy as np

A = np.arange(0, 15, 1)
print("A=>\n{}".format(A))
B = A.reshape(3, 5)
print("B=>\n{}".format(B))

print("B[1:2]=>\n{}".format(B[1:2]))
print("B[1:3, 2:3]=>\n{}".format(B[1:3, 2:4]))
print("B[1:3, :]=>\n{}".format(B[1:3, :]))
print("B[:, 2:4]=>\n{}".format(B[:, 2:4]))
print("B[:, 2]=>\n{}".format(B[:, 2]))
print("B[:, :]=>\n{}".format(B[:,:])

A=>
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
B=>
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
B[1:2]=>
[[5 6 7 8 9]]
B[1:3, 2:3]=>
[[ 7  8]
 [12 13]]
B[1:3, :]=>
[[ 5  6  7  8  9]
 [10 11 12 13 14]]
B[:, 2:4]=>
[[ 2  3]
 [ 7  8]
 [12 13]]
B[:, 2]=>
[ 2  7 12]
B[:, :]=>
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

Universelle Funktion

numpy bietet Funktionen mit denselben Namen wie die vom Mathematikmodul bereitgestellten, wie z. B. sin und cos. Sie verhalten sich wie "auf alle Elemente des Arrays anwenden" für das Array

universal.py


import numpy as np
import math

r = np.linspace(0, 0.5 * math.pi, 6)
print(r)

sin_r = np.sin(r)
print(sin_r)

cos_r = np.cos(r)
print(cos_r)

print("Geben Sie Error ein, wenn Sie die von math für numpy bereitgestellte Funktion verwenden")
print(math.sin(r)

[0.         0.31415927 0.62831853 0.9424778  1.25663706 1.57079633]
[0.         0.30901699 0.58778525 0.80901699 0.95105652 1.        ]
[1.00000000e+00 9.51056516e-01 8.09016994e-01 5.87785252e-01
 3.09016994e-01 6.12323400e-17]
Geben Sie Error ein, wenn Sie die von math bereitgestellte Funktion verwenden
Traceback (most recent call last):
  File "test_conda.py", line 14, in <module>
    print(math.sin(r))
TypeError: only size-1 arrays can be converted to Python scalars

Recommended Posts

[Python] Numpy Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Mein Numpy (Python)
Python-Anfänger-Memo (9.2-10)
Python-Anfänger-Memo (9.1)
# Python-Grundlagen (#Numpy 1/2)
[Python] EDA-Memo
# Python-Grundlagen (#Numpy 2/2)
Python 3-Operator-Memo
[Mein Memo] Python
Python3-Metaklassen-Memo
Python-Anfänger-Memo (2)
Python-Klasse (Python-Lernnotiz ⑦)
Python- und Numpy-Tipps
Python OpenCV Installation (Memo)
Python-Modul (Python-Lernnotiz ④)
Python Basic 8 Numpy Test
Python-Testpaket-Memo
[Python] Memo über Funktionen
[Python] Suche (NumPy) ABC165C
Python-Memo für reguläre Ausdrücke
Memo zur Bisektionssuche (python2.7)
Berechnung des Python-Numpy-Arrays
[Mein Memo] Python -v / Python -V
Python3-Memo vom Typ Liste / Wörterbuch
[Memo] Python 3-Listensortierung
[Python] Memo Über Fehler
DynamoDB Script Memo (Python)
Python-Grundnotiz - Teil 2
Python-Rezeptbuch Memo
Grundlegende Python-Befehlsnotizen
Python OpenCV Tutorial Memo
Python grundlegende Grammatik Memo
[Python] Numpy Daten sortieren
TensorFlow API-Memo (Python)
Python-Dekorator-Operationsnotiz
Python-Grundnotiz - Teil 1
Effektives Python-Memo Punkt 3
Ungefähre Aufzählung Python-Memo
Python Basic - Pandas, Numpy -
Tipps zum Nachdenken über np.newaxis in Python / Numpy
Python-Memo (für mich): Array
Behandlung von Python-Ausnahmen (Python-Lernnotiz ⑥)
Memo zur Messung der Python-Ausführungszeit
Konvertieren Sie numpy int64 in python int
Python
Twitter-Grafiknotiz mit Python
[Line / Python] Beacon-Implementierungsnotiz
SMO mit Python + NumPy implementiert
Python und Ruby Slice Memo
Python-Grammatik-Grundnotiz (1)
Persönliches Python-Code-Memo
Matrixprodukt in Python numpy