[PYTHON] NumPy-Array-Operation (1)

Warum Python verwenden?

Denken wir noch einmal vom Ausgangspunkt aus. Was ist der Grund für die Verwendung von Python für Statistiken und maschinelles Lernen? Der Autor denkt wie folgt.

Es gibt viele andere Typen wie Haskell und Ruby, die nur von ihrer Anziehungskraft als Sprache sprechen. Die R-Sprache ist auch für einfache statistische mathematische Berechnungen bekannt. Es gibt auch kostenpflichtige Software für Finanzberechnungen und statistische Analysen. Python ist jedoch möglicherweise der erste Kandidat für eine Sprache, die Probleme gleichzeitig mit einer wissenschaftlichen Anwendung löst, die auf Berechnung und allgemeine Systemverarbeitung spezialisiert ist.

NumPy ist die Bibliothek, die die Grundlage für wissenschaftliche und verschiedene mathematische Berechnungen wie die mehrdimensionale Array-Berechnung von Python bildet.

Von nun an konzentrieren wir uns eine Weile auf die Array-Manipulation von NumPy, um die leistungsstarken Funktionen besser zu verstehen.

np.ndarray Objekt

Das NumPy ndarray-Objekt ist eine Klasse zum Behandeln von Schrittdaten (kontinuierlichen Daten) als N-dimensionales Array.

Der Versuch, mit mehrdimensionalen Arrays in einer gemeinsamen Programmiersprache ohne die Hilfe einer solchen Bibliothek zu arbeiten, würde eine komplexe verschachtelte Liste (Array) und eine andere komplexe verschachtelte Mehrfachschleife erfordern, um sie zu berechnen. Ich werde am Ende. Dies ist nicht realistisch, daher kann das Gute oder Schlechte einer mehrdimensionalen Array-Bibliothek als wesentlich für wissenschaftliche Berechnungen angesehen werden.

Vor- und Nachteile von ndarray

Hier sind einige der Vorteile von ndarray gegenüber ndarray und mehreren Listen (Arrays).

Andererseits hat ndarray einige Nachteile.

Aus der Perspektive der mathematischen, insbesondere der linearen Algebra halte ich dies für ziemlich natürlich.

Komponenten von ndarray

Das ndarray hat intern einen Schritt, und das Array-Objekt enthält Elemente wie dtype (Datentyp), Form und Schritt.

Auf die Form des Arrays kann mit der Formfunktion zugegriffen werden. Auf Schritte kann auch mit der Schrittfunktion zugegriffen werden.

np.zeros((3,4))
#=> array([[ 0.,  0.,  0.,  0.],
#          [ 0.,  0.,  0.,  0.],
#          [ 0.,  0.,  0.,  0.]])

np.zeros((3,4)).shape
#=> (3, 4)

np.zeros((3,4)).strides
#=> (32, 8)
#Bytewert, der die "Schrittlänge" angibt, die erforderlich ist, um ein Element in jeder Dimension um eins voranzutreiben

Indexreferenz

Schneiden

Bei Arrays mit zwei oder mehr Dimensionen ist das Indexreferenzziel ein Array mit einer oder mehreren Dimensionen.

arr = np.array( [[[1,2,3], [4,5,6]], [[7,8,9],[10,11,12]]] )

arr.ndim #Anzahl der Dimensionen
#=> 3

arr[0]
#=> array([[1, 2, 3],
#          [4, 5, 6]])
#Gibt ein zweidimensionales Array zurück

Wenn Sie ein Array für den Index angeben, können Sie das Array mit der um diesen Betrag reduzierten Anzahl von Dimensionen abrufen.

arr[1,0]
#=> array([7, 8, 9])

arr[1,0,2]
#=> 9

Siehe ausgefallener Index

Wenn Sie in einer bestimmten Reihenfolge aus einem mehrdimensionalen Array extrahieren möchten, können Sie eine Liste von Ganzzahlen oder ndarray übergeben, die die Reihenfolge als Indexreferenz angibt.

arr[[1,0]]
#=> array([[[ 7,  8,  9],
#           [10, 11, 12]],
#          [[ 1,  2,  3],
#           [ 4,  5,  6]]])

arr = np.arange(48).reshape((4,3,4))
#=> array([[[ 0,  1,  2,  3],
#           [ 4,  5,  6,  7],
#           [ 8,  9, 10, 11]],

#          [[12, 13, 14, 15],
#           [16, 17, 18, 19],
#           [20, 21, 22, 23]],

#          [[24, 25, 26, 27],
#           [28, 29, 30, 31],
#           [32, 33, 34, 35]],

#          [[36, 37, 38, 39],
#           [40, 41, 42, 43],
#           [44, 45, 46, 47]]])

arr[[0,0,1],[0,1,0],[0,0,2]]
#=> array([ 0,  4, 14])
# (0,0,0), (0,1,0), (1,0,2)Das Element an der Position von wird herausgenommen

Zusammenfassung

Zuerst habe ich die grundlegende Indexreferenz eingeführt. Diese Referenzen kopieren das Objekt nicht in den Speicher und werden alle in einer Schrittansicht der Daten bereitgestellt. Dies ist eines der Merkmale von ndarray.

Recommended Posts

NumPy-Array-Operation (3)
NumPy-Array-Operation (1)
Berechnung des Python-Numpy-Arrays
Erstellen Sie ein Python-Numpy-Array
Mehrdimensionale Array-Berechnung ohne Numpy
Über Numpy Array und Asarray
Indexierter Zugriff auf das Python-Numpy-Array
Mehrdimensionale Array-Berechnung ohne Numpy Teil 2
Python-Anwendung: Numpy Teil 3: Double Array
Extrahieren Sie mehrere Elemente mit dem Numpy-Array
Invertiere numpy Boolean Array in Tilda
Numpy-Übung 1
numpy Teil 1
NumPy-Grundlagen
Numpy Memorandum _ Matrix
Python / numpy> list (numpy array) Datei speichern / laden
NumPy-Achse
Verwenden Sie Numpy
numpy Teil 2
Unterschied zwischen Numpy 1D Array [x] und 2D Array [x, 1]
Fügen Sie einem leeren Array mit numpy Zeilen hinzu
Die Form der eindimensionalen Anordnung von Numpy war kompliziert
[Python numpy] Geben Sie den Index des Arrays dynamisch an
Berechnungsgeschwindigkeit der Indizierung für ein numpy quadratisches Array