Ein Doppelarray kann in der Mathematik als "Matrix" behandelt werden. Zum Beispiel, wenn Sie np.array schreiben ([Liste, Liste, Liste ...]) Doppelte Array-Daten (ndarray-Typ) werden erstellt.
Nach der Mathematik wird die Hierarchie mehrerer Arrays manchmal als "Dimension" bezeichnet. Ein Doppelarray ist ein zweidimensionales Array und so weiter.
Das Array von nparray ist
shape
Es hat eine Mitgliedsvariable namens.
nparray Array.shape #Wenn Sie dies schreiben, wird die Anzahl der Elemente im Array aufgezeichnet.
Zum Beispiel, wenn Sie ein Doppelarray haben, das einer 2-mal-3-Matrix entspricht Das ndarray-Array .shape hat den Wert (2, 3).
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print(arr)
print(arr.shape)
#Ausgabe
[[1 2 3]
[4 5 6]]
#Die Anzahl der Zeilen und Spalten ist wie unten gezeigt, wobei die Zeile die Anzahl der Listen und die Spalte die Anzahl der Elemente ist.
(2, 3)
Die Form des Arrays ist
ndarray Array.reshape()
Sie können es mit der Methode ändern.
Mit zwei Argumenten a und b
ndarray Array.reshape(a,b)
Wenn Sie schreiben, erhalten Sie die Array-Daten, die der Matrix einer Zeile und einer b-Spalte entsprechen, als Rückgabewert.
Zu diesem Zeitpunkt müssen die Gesamtzahl der Elemente und das Argument der Umformungsmethode übereinstimmen. Wenn Sie -1 für das Argument verwenden, wird es transformiert, indem der entsprechende Wert aus den anderen Argumenten erraten wird.
import numpy as np
arrA = np.array([1,2,3,4,5,6])
print(arrA)
arrB = arrA.reshape(2,3)
print(arrB)
arrC = arrA.reshape(-1,2)
print(arrC)
#Ausgabe
# arrA
[1 2 3 4 5 6]
# arrB:Passen Sie die Anzahl der Matrizen aus dem Argument an
[[1 2 3]
[4 5 6]]
# arrC: -Passen Sie vom Argument 1 zum Argument der Spalte 2 an
[[1 2]
[3 4]
[5 6]]
Wenn Sie für ein zweidimensionales Array nur einen Index angeben, können Sie eine beliebige Zeile im Array abrufen.
arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1])
#Ausgabeergebnis
[4 5 6]
Sie müssen zwei Indizes angeben, um zum einzelnen Element oder Skalarwert zu gelangen. Das heißt, Zugriff wie arr [1] [2] oder arr [1, 2].
arr [1] [2] greift auf das dritte Element des Arrays zu, das von arr [1] abgerufen wurde. In arr [1, 2] wird auf dasselbe Element zugegriffen, indem die Achsen des zweidimensionalen Arrays angegeben werden.
arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1][2])
print(arr[1,2])
#Ausgabeergebnis
6
6
Es ist auch möglich, Slices zu verwenden, wenn auf ein zweidimensionales Array verwiesen wird.
arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1,1:])
#Ausgabeergebnis
[5 6]
# :Extrahiert die Elemente nach und vor dem Element mit.
axis
Aus einem zweidimensionalen Array wird das Konzept der Achse wichtig.
Achse ist wie eine Koordinatenachse. Es gibt viele Situationen, in denen Sie die Achse als Argument für eine NumPy-Funktion festlegen können.
Im Fall eines zweidimensionalen Arrays wird die Achse wie in der folgenden Abbildung gezeigt eingestellt. Die Achse, die jede Spalte verarbeitet, ist Achse = 0 Die Achse, die Zeile für Zeile verarbeitet, ist Achse = 1 Es bedeutet das.
Betrachten Sie beispielsweise die sum () -Methode eines ndarray-Arrays. Sie können Elemente zusammen mit ndarray.sum () hinzufügen.
mport numpy as np
arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr.sum()) # sum()Wenn im Argument von nichts angegeben ist, ist der Gesamtwert ein Skalar (Ganzzahl, Bruch usw.).
print(arr.sum(axis=0)) # axis=Wenn 0 angegeben ist, wird eine vertikale Addition durchgeführt und die Elemente werden zu einem eindimensionalen Array mit drei Elementen.
print(arr.sum(axis=1)) # axis=Wenn Sie 1 angeben, können Sie sehen, dass die Elemente horizontal hinzugefügt werden, um zwei eindimensionale Arrays zu bilden.
#Ausgabeergebnis
21
[5 7 9]
[ 6 15]
# axis=Element bei 0(Nach Indexnummer)
# axis=1 für jede Primärliste
Es ist eine Methode zur Verwendung eines Indexarrays als Indexreferenz.
So extrahieren Sie Zeilen aus einem ndarray-Array in einer bestimmten Reihenfolge Übergeben Sie ein Array mit der Reihenfolge als Indexreferenz.
[[]] #Verwenden Sie doppelte Klammern für ausgefallene Indexreferenzen.
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
#Extrahieren Sie die Elemente in der 3., 2. und 0. Zeile in dieser Reihenfolge und erstellen Sie ein neues Element.
#Indexnummern beginnen bei 0.
print(arr[[3, 2, 0]])
#Ausgabeergebnis
[[7 8]
[5 6]
[1 2]]
In einer Matrix wird das Vertauschen von Zeilen und Spalten als Translokation bezeichnet. So transponieren Sie ein ndarray-Array
np.transpose()
Wie man das benutzt
.T
Es gibt zwei Möglichkeiten
import numpy as np
arr = np.arange(10).reshape(2, 5)
#Transponieren und geben Sie die Variable arr aus
print(arr.T)
#Oder
print(arr.transpose())
#Ausgabe
[[0 5]
[1 6]
[2 7]
[3 8]
[4 9]]
Es gibt verschiedene Sortiermöglichkeiten, die alle unterschiedliche Verwendungszwecke haben.
sort() Das ndarray-Array kann sowohl nach sort () als auch nach dem Listentyp sortiert werden.
Bei einem zweidimensionalen Array werden die Elemente nach 0 sortiert, wenn 0 als Argument verwendet wird.
import numpy as np
arr = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
print(arr)
arr.sort(axis=0) #Es ist in der Spalte hier angegeben.
print(arr)
#Ausgabeergebnis
[[ 15 5 200]
[ 2 100 60]
[100 50 8]]
[[ 2 5 8]
[ 15 50 60]
[100 100 200]]
Wenn Sie 1 als Argument verwenden, werden die Elemente zeilenweise sortiert.
import numpy as np
arr = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
print(arr)
arr.sort(1) #Geben Sie 1 ohne Achse an und geben Sie Zeile für Zeile an
print(arr)
#Ausgabeergebnis
[[ 15 5 200]
[ 2 100 60]
[100 50 8]]
[[ 5 15 200]
[ 2 60 100]
[ 8 50 100]]
np.sort()
Sie können auch mit np.sort () sortieren. Bitte beachten Sie jedoch, dass die Verwendung unterschiedlich ist.
Die Methode von arr, mit der die Daten gespeichert wurden
arr.sort() #Sortieren Sie die Daten in arr.
auf der anderen Seite
np.sort(arr) #Das arr bleibt gleich und erstellt ein weiteres Array mit sortierten Daten.
Bei Verwendung von np.sort () können die sortierten Daten nur verwendet werden, wenn die neu erstellte Variable zugewiesen ist.
import numpy as np
arrA = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
arrB = np.sort(arrA)
print(arrA) #Anordnung vor dem Sortieren
print(arrB) #Anordnung nach dem Sortieren
#Sortiermethode (arr.sort()Wenn Sie ähnlichen Code mit) schreiben, ändert sich das Verhalten vollständig.
import numpy as np
arrA = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
arrB = arrA.sort()
print(arrA) #Anordnung nach dem Sortieren
print(arrB) # None
# np.Durch Hinzufügen wird ein neues Array erstellt.
Bei Verwendung von np.sort () können die sortierten Daten nur verwendet werden, wenn die neu erstellte Variable zugewiesen ist.
NumPy wurde für die Verarbeitung einer großen Datenmenge entwickelt und verwendet ein für ein Python-Modul seltenes Design, z. B. die Rückgabe von None an einige Methoden.
Häufig verwendete Methoden beim maschinellen Lernen
argsort() #Da ist auch das.
Die argsort () -Methode gibt den sortierten "Array-Index" zurück.
import numpy as np
arr = np.array([15, 30, 5])
arr.argsort()
#Bei der Ausführung werden die folgenden Ergebnisse erhalten.
#Ausgabeergebnis
[2 0 1]
Wenn Sie arr.sort () ausführen, ist dies [5 15 30]. Das Element "5", das sich im ursprünglichen Array in der "Sekunde" befand, ist das 0 .. Das Element "15", das im ursprünglichen Array in der "0" war, ist das 1 .. Das Element "30", das im ursprünglichen Array im "ersten" enthalten war, wird zum zweiten Element.
Wenn Sie also [15, 30, 5] mit .argsort () ausführen Der Wert wird als [2 0 1] zurückgegeben, da er in der angegebenen Reihenfolge zum "2., 0., 1." Element wird.
Für Funktionen, die Matrixberechnungen durchführen
np.dot(a,b) #Gibt das Matrixprodukt zweier Matrizen zurück
np.linalg.norm(a) #Gibt die Norm zurück
Durch Berechnen des Produkts der Matrix wird eine neue Matrix erstellt, deren Elemente das innere Produkt des Zeilenvektors und des Spaltenvektors in der Matrix sind.
Die Norm gibt die Länge des Vektors zurück Es ist die Summe der quadratischen Werte der Elemente, die mit der Wurzel bedeckt sind.
Eine statistische Funktion ist eine Funktion, die eine mathematische Verarbeitung ausführt, die auf dem gesamten ndarray-Array oder einer bestimmten Achse zentriert ist. Oder eine Methode.
np.argmax() #Indexnummer des Maximalwerts des Elements
np.argmin() #Indexnummer des Mindestwerts des Elements
Darüber hinaus funktionieren diese Funktionen
np.average() #durchschnittlich
Bis auf diesen Durchschnitt
Auf das ndarray-Array anwenden
ndarray.mean()
ndarray.max()
Es gibt auch Methoden für das Objekt selbst, wie z.
Als eine Sache, die in der Statistik behandelt wird
np.std() #Standardabweichung
np.var() #Verteilt
Und so weiter.
np.sum()
#Jetzt durch Angabe mit Achse
#Als ob wir uns entscheiden könnten, auf welche Achse wir uns konzentrieren sollen
np.mean()
mean()
#Mit diesen können Sie die Achse auf die gleiche Weise angeben.
np.argmax()
argmax()
np.argmin()
argmin()
#Für diese Methoden
#Gibt den maximalen oder minimalen Index für jede durch die Achse angegebene Achse zurück.
Bei der Berechnung zwischen ndarray-Arrays unterschiedlicher Größe Ein Prozess namens Broadcast wird automatisch ausgeführt.
Broadcast beim Rechnen zwischen zwei ndarray-Arrays Die Zeilen und Spalten des kleineren Arrays werden automatisch mit dem größeren Array ausgerichtet.
Wenn die Anzahl der Zeilen in den beiden Arrays nicht übereinstimmt Kopieren Sie die fehlenden Zeilen aus den vorhandenen Zeilen entsprechend der Anzahl der Zeilen mit den wenigsten Zeilen.
Wenn die Anzahl der Spalten nicht übereinstimmt, wird der gleiche Vorgang ausgeführt. Nicht alle Arrays können gesendet werden. Broadcasting ist möglich, wenn alle Elemente wie in der folgenden Abbildung dargestellt verarbeitet werden.
x = np.arange(6).reshape(2, 3)
print(x + 1)
#Ausgabeergebnis
[[1 2 3]
[4 5 6]]
Recommended Posts