[PYTHON] Numpy [Basic]

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!

0. Informationen zur Installation

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.

1. Grundlegende Attribute

--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.

2. Erstellen Sie eine Matrix

--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]])

3. Drucken Sie die Matrix

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]]

4. Mathematische Operationen gelten für alle Elemente

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]])
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

5. Index Slice-Iteratorisierung der Matrix

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

6. Ändern Sie die Form der Matrix

--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.

7. Synthetisieren Sie die Matrix

--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]]])

8. Teilen Sie die Matrix

--np.hsplit (Matrix, Zahl): Horizontal in die angegebene Zahl teilen. --np.vsplit (Matrix, Nummer): Vertikal in die angegebene Nummer teilen.

9. Kopieren Sie die Matrix

--array.view (): flache Kopie in Python. Ich glaube nicht, dass ich es oft benutze. --array.copy (): Tiefe Kopie in Python.

Recommended Posts

Numpy [Basic]
Numpy Grundberechnungsnotiz
Python Basic - Pandas, Numpy -
Numpy-Übung 1
numpy Teil 1
NumPy-Grundlagen
Numpy Memorandum _ Matrix
numpy tipps
Über Numpy
Grundlegende Befehle
NumPy-Achse
Verwenden Sie Numpy
numpy Teil 2
Mein Numpy (Python)
Netzwerkprogrammierung (grundlegend)
wo von numpy
RF Python Basic_01
Linux-Befehl <Basic 2>
Theanos Grundnotizen
Numpy Unit Test
Flask Grundnotiz
NumPy-Array-Operation (3)
Liste und Numpy
Python-Grundschrift
NumPy Universalfunktion
numpy memorandum 1 / np.pad
Grundlegende LINUX-Befehle
# Python-Grundlagen (#Numpy 1/2)
# Python-Grundlagen (#Numpy 2/2)
Numpy-Index-Suche
Grundlegende Grammatik von Python3
NumPy-Array-Operation (1)
Linux-Befehl <Basic 1>
[Numpy] Shuffle ndarray
RF Python Basic_02
Python #Numpy Basics
Numpys nicht-grundlegende Technik
Über Numpy Broadcast
Djangos grundlegendes Memorandum
[PyTorch] Beispiel ① ~ NUMPY ~
Numpy + Atlas installieren
Flask Basic-Zertifizierung
[Python] Numpy Memo