Ich werde die Numpy-Dokumentation durchgehen. Diesmal ist es ein ziemlich grundlegender Teil. Wenn Sie das Dokument direkt lesen möchten, überprüfen Sie bitte hier!
Ich habe Python von Anaconda heruntergeladen, daher war Numpy von Anfang an dabei.
Wenn Sie es nicht haben, laden Sie es bitte von hier herunter.
--array.ndim: Repräsentiert die Dimensionen der Matrix. Dies entspricht der Anzahl der "[" am Anfang. --array.shape: Gibt die Form der Matrix als Tupel zurück. --array.size: Die Gesamtzahl der Elemente in der Matrix. --array.dtype: Repräsentiert den Datentyp des Elements. Zusätzlich zu den Datentypen, die Python verarbeiten kann, gibt es auch numpy-spezifische wie np.int64. Außerdem steht dtype = 'complex' für eine komplexe Zahl. --array.itemsize: Repräsentiert die Anzahl der Bytes in jedem Element. Wenn es sich um einen int64-Typ handelt, sind es 8 Bytes.
--Erstellen Sie eine Matrix aus Python-Datentypen.
np.array([[1, 2, 3], [4, 5, 6]])
>>> array([1, 2, 3],
[4, 5, 6]])
--np.zeros (Matrixform): Nimmt ein Taple als Argument und gibt eine Matrix mit allen Elementen 0 zurück --np.ones (Matrixform): Dies gibt eine Matrix zurück, in der alle Elemente 1 sind.
np.zeros((3, 4))
>>> array([0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
--np.empty (Matrixform): Erstellen Sie eine Matrix mit zufälligen Elementen
np.empty((4, 5))
>>> array([[ 0.1 , 0.15, 0.2 , 0.25, 0.3 ],
[ 0.4 , 0.5 , 0.6 , 0.8 , 1. ],
[ 1.5 , 2. , 2.5 , 3. , 4. ],
[ 5. , 6. , 8. , 10. , 15. ]])
--np.arange (a, b, c): In einer solchen Form beginnt es mit a, hat Elemente, die durch c hinzugefügt wurden, und setzt sich fort, bis der Maximalwert kleiner als b angenommen wird.
np.arange(12)
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
np.arange(10, 30, 5)
>>> array([10, 15, 20, 25])
--np.linspace (a, b, c): Gibt eine lineare Matrix mit c Elementen in regelmäßigen Abständen von a bis b zurück.
np.linspace(0, 2.0, 9)
>>> array([0., 0.25, 0.5, 0.75, 1., 1.25, 1.5, 1.75, 2.])
--np.random.rand (Matrixform): Gibt eine Matrix zurück, in der jedes Element 0 oder mehr und 1 oder weniger in der angegebenen Form ist. --np.random.randn (Matrixform): Wie oben, jedoch mit ganzzahligen Elementen.
--np.fromfunction (Funktion, Matrixform [, Datentyp]): Kann die Beziehung zwischen der Anzahl der Zeilen und der Anzahl der Spalten ausdrücken.
np.fromfunction(lambda i,j: i+j, (3, 3), dtype='int64')
>>> array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
Sie können die Druckmethode von Python verwenden, um eine saubere Matrix ohne Kommas anzuzeigen.
print(np.arange(12).reshape(3, 4))
>>> [[0 1 2 3]
[4 5 6 7]
[8 9 10 11]]
Wenn Sie eine Matrix hinzufügen oder multiplizieren, wird die Operation auf alle Elemente angewendet.
a = np.array([10, 20, 30, 40])
b = np.array([1, 2, 3, 4])
a - b >>> array([9, 18, 27, 36])
b * 2 >>> array([2, 4, 6, 8])
a < 35 >>> array([True, True, True, False])
Wenn Sie das Produkt der Matrizen möchten, verwenden Sie die Funktion dot ().
A = np.array([[1, 1], [0, 1]])
B = np.array([[2, 0], [3, 4]])
A * B >>> array([[2, 0],
[0, 4]]) #Die Multiplikation der entsprechenden Elemente wird durchgeführt.
A.dot(B) / np.dot(A, B) >>> array([[5, 4],
[3, 4]])
Die Gesamt-, Maximal- und Minimalwerte können mit np.sum (), np.max () und np.min () ermittelt werden.
Sie können die Achse auswählen, die Sie bedienen möchten.
a = np.arange(12).reshape(3, 4) >>> array([[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]])
a.sum(axis=0) >>> array([12, 15, 18, 21]) #Vertikale Richtung
a.min(axis=1) >>> array([0, 4, 8]) #Horizontale Richtung
Nicht nur lineare Matrizen, sondern auch Matrizen mit mehreren Dimensionen können auf dieselbe Weise wie List in Python behandelt werden. Wenn Sie jedoch eine Matrix mit mehreren Dimensionen als Iterator behandeln, verwenden Sie das Attribut flat. Es ähnelt der Verwendung von items (), wenn ein Wörterbuch als Iterator behandelt wird!
A = np.arange(12).reshape(3, 4)
A[(0, 2)] >>> 2 #Index
A[1:2, 0:2] >>> array([[4, 5]]) #Scheibe
for element in A.flat:
print(element) >>> 0~Bis zu 11 werden gedruckt
--np.floor (Matrix): Runden Sie jedes Element ab. (Ich glaube nicht, dass es etwas mit der Form zu tun hat, aber es wurde hier im Dokument geschrieben lol)
--np.ravel (Matrix): Konvertiert eine Matrix in eine Dimension. --array.reshape (Matrix, neue Form [, Reihenfolge]): Formt die Matrix in die gewünschte Form um (Reihenfolge wird später beschrieben). --array.T: Geben Sie die Translokationsmatrix an.
order
The elements of a are read using this index order. ‘C’ means to index the elements in row-major, C-style order, with the last axis index changing fastest, back to the first axis index changing slowest. ‘F’ means to index the elements in column-major, Fortran-style order, with the first index changing fastest, and the last index changing slowest. Note that the ‘C’ and ‘F’ options take no account of the memory layout of the underlying array, and only refer to the order of axis indexing. ‘A’ means to read the elements in Fortran-like index order if a is Fortran contiguous in memory, C-like order otherwise. ‘K’ means to read the elements in the order they occur in memory, except for reversing the data when strides are negative. By default, ‘C’ index order is used.
Wie geschrieben, gibt "C-Stil" der Zeilenreihenfolge Priorität, und "F-Stil" gibt der Spaltenreihenfolge Priorität.
A = np.arange(12).reshape(3, 4)
np.reshape(A, (2, 6), 'C') >>> array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]])
np.reshape(A, (2, 6), 'F') >>> array([[ 0, 8, 5, 2, 10, 7],
[ 4, 1, 9, 6, 3, 11]])
Es gibt auch "A-Stil" und "K-Stil", aber ich denke, dass sie nicht die Grundlagen sind, deshalb werde ich sie in einem zukünftigen Artikel erklären, wenn ich die Gelegenheit dazu habe.
--np.vstack ((Matrix 1, Matrix 2)): Vertikal kombinieren. --np.hstack ((Matrix 1, Matrix 2)): Horizontal zusammenführen.
--np.column_stack ((Matrix 1, Matrix 2)): Erstellen Sie eine zweidimensionale Matrix für eine Kombination linearer Matrizen und verhalten Sie sich wie hstack für eine mehrdimensionale Menge.
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
np.vstack((a, b)) >>> array([[1, 2, 3],
[4, 5, 6]])
np.hstack((a, b)) >>> array([1, 2, 3, 4, 5, 6])
np.column_stack((a, b)) >>> array([[1, 4],
[2, 5],
[3, 6]])
np.column_stack((c, d)) >>> array([[1, 2, 5, 6],
[3, 4, 7, 8]])
--np.newaxis: Erstellen Sie eine neue Dimension.
a = np.array([4, 2])
b = np.array([[1, 2], [3, 4]])
a[:, np.newaxis] >>> array([[4],
[2]])
b[:, np.newaxis] >>> array([[[1, 2]],
[[3,4]]])
--np.hsplit (Matrix, Zahl): Horizontal in die angegebene Zahl teilen. --np.vsplit (Matrix, Nummer): Vertikal in die angegebene Nummer teilen.
--array.view (): flache Kopie in Python. Ich glaube nicht, dass ich es oft benutze. --array.copy (): Tiefe Kopie in Python.
Recommended Posts