Array-Eigenschaften
Der Unterschied zwischen ndim und Form
Die Anzahl der ndim-Achsen, dh die Anzahl der Schichten von außen nach innen (Achse = 0 ist die äußerste Schicht).
Die Elemente jedes Schichtarrays geben ein Tupel zurück, dessen Länge ndim ist, wie z. B. (2,2,3) bedeutet Achse = 0, es gibt zwei Elemente, Achse = 1, es gibt zwei Elemente, die innerste Achse = 3 hat 3 Elemente, ndim = 3
Array erstellen
1. Allgemeine Erstellung
numpy.array (Objekt, dtype = Keine, copy = True, order = Keine, subok = False, ndmin = 0)
numpy.empty (Form, dtype = float, order = 'C') zu erzeugen ein leeres Array
numpy.zeros (Form, dtype = float, order = 'C') erstellen einen Null - Array
numpy.ones (Form, dtype = None, order = 'C') Erstelle 1 Array
2. Erstellen Sie ein Array aus einem vorhandenen Array
numpy.asarray (a, dtype = None, order = None) a ist ein Eingabeparameter beliebiger Form, der eine Liste, ein Tupel einer Liste, ein Tupel usw. sein kann.
numpy.frombuffer (buffer, dtype = float, count = -1, offset = 0) Der Puffer wird im Parameter
numpy.fromiter (iterable, dtype, count = -1) in Form eines Streams übergeben, der aus einem iterierbaren Objekt erstellt wurde
3. Erstellen Sie ein Array aus einem Wertebereich
numpy.arange (start, stop, step, dtype) erstellt ein Array im Bereich von start-stop
np.linspace (start, stop, num = 50, endpoint = True, retstep = False, dtype = None) erstellt ein eindimensionales Äquivalenzarray. num ist die Anzahl der generierten Elemente
np.logspace (Start, Stopp, num = 50, Endpunkt = True, Basis = 10.0, dtype = Keine), um eine proportionale Sequenz zu erstellen, Basisprotokollbasis
Numpy Slicing und Indizierung
1. Slice () Slices nach Index
import numpy as np
a = np.arange(10)
s = slice(2,7,## 标题2) # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])
[2,4,6]
2. [start: stop: step]
b = a [2: 7: 2]
Erläuterung des Doppelpunkts: Wenn nur ein Parameter platziert wird, z. B. [2], wird ein einzelnes Element zurückgegeben, das dem Index entspricht. Wenn es [2:] ist, bedeutet dies, dass alle vom Index ausgehenden Elemente extrahiert werden. Wenn zwei Parameter verwendet werden, z. B. [2: 7], extrahieren Sie die Elemente zwischen den beiden Indizes ( ohne den Stoppindex ).
3. Fügen Sie Auslassungspunkte ein ..., um die Länge des ausgewählten Tupels an die Dimension des Arrays anzupassen, verwenden Sie die Auslassungspunkte für die Zeilenposition und geben Sie das Array zurück, das die Elemente in der Zeile enthält
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print (a[...,1]) # 第2列元素
print (a[1,...]) # 第2行元素
print (a[...,1:]) # 第2列及剩下的所有元素
#输出结果
[2 4 5]
[3 4 5]
[[2 3]
[4 5]
[5 6]]
Erweiterter Index
Integer-Array-Index
import numpy as np
x = np.array([[1, 2], [3, 4], [5, 6]])
y = x[[0,1,2], [0,1,0]]
print (y)
#输出结果,获取数组(0,0),(1,1),(2,0)位置处元素
[1,4,5]
Slice: oder ... kombiniert mit einem indizierten Array
a = np.array([[1,2,3], [4,5,6],[7,8,9]])
c = a[1:3,[1,2]]
#输出结果,1:3切片索引不含尾,[1,2]索引数组包含头和尾
[[5 6]
[8 9]]
Boolescher Index
Verwenden Sie boolesche Operationen (z. B. Vergleichsoperatoren), um ein Array von Elementen abzurufen, die bestimmte Bedingungen erfüllen. x [x> 5]
a [~ np.isnan (a)] filtert NaN
a [np.iscomplex (a)] in a und schlägt komplexe Zahlen vor
Die ausgefallene Indizierung
bezieht sich auf die Indizierung mit ganzzahligen Arrays, die sich vom Slicing unterscheidet. Sie kopiert immer Daten in ein neues Array . Wenn das Ziel ein mehrdimensionales Array ist, ist die dem
Index entsprechende Zeile x = np.arange (32) ) .reshape ((8,4))
print (x [[4,2,1,7]]) #line index
x=np.arange(32).reshape((8,4))
print (x[np.ix_([1,5,7,2],[0,3,1,2])])#传入多个索引数组(要使用np.ix_)
NumPy Broadcast (Broadcast)
Wenn a.shape ≠ b.shape in Betrieb ist, wird der Broadcast-Mechanismus ausgelöst
Rundfunkregeln:
Alle Eingabearrays werden an dem Array mit der längsten Form ausgerichtet, und die fehlenden Teile der Form werden durch Hinzufügen von 1 vorne gefüllt.
Die Form des Ausgabearrays ist der Maximalwert in jeder Dimension der Form des Eingabearrays.
Wenn eine Dimension des Eingabearrays und die entsprechende Dimension des Ausgabearrays dieselbe Länge haben oder ihre Länge 1 beträgt, kann das Array zur Berechnung verwendet werden, andernfalls tritt ein Fehler auf.
Wenn die Länge einer Dimension des Eingabearrays 1 beträgt, wird der erste Wertesatz in dieser Dimension verwendet, wenn entlang dieser Dimension berechnet wird.
importiere numpy als np
a = np.array([[ 0, 0, 0],
[10,10,10],
[20,20,20],
[30,30,30]])
b = np.array([1,2,3])
bb = np.tile(b, (4, 1)) # 重复 b 的各个维度
print(a + bb)
#结果
[[ 1 2 3]
[11 12 13]
[21 22 23]
[31 32 33]]
Die Funktion tile () besteht darin, die ursprüngliche Matrix horizontal und vertikal zu kopieren.
tile (mat, (1, 4)) # Die Spalte wird viermal so kopiert wie das Original
NumPy iteriert Array numpy.ndite
Numpy Array-Operationen
Ändern Sie die Array-Form
numpy.reshape (arr, newshape, order = 'C')
Iterator des Array-Elements numpy.ndarray.flat
ndarray.flatten (order = 'C') gibt eine Kopie des Arrays zurück. Die an der Kopie vorgenommenen Änderungen wirken sich nicht auf das ursprüngliche Array aus. Reihenfolge: 'C'-by-Zeile,' F'-by-Spalte, 'A'-Original Reihenfolge, 'K' - die Reihenfolge, in der Elemente im Speicher erscheinen.
a=[[0 1 2 3]
[4 5 6 7]]
a.flatten()=[0 1 2 3 4 5 6 7]
numpy.ravel (a, order = 'C') reduzierte Array-Elemente. Änderungen wirken sich auf das ursprüngliche Array aus.
Array umdrehen
numpy.transpose (arr, axis) vertauscht die Dimensionen des Arrays, ähnlich wie numpy.ndarray.T transpose
Die Funktion numpy.rollaxis (arr, axis, start) scrollt eine bestimmte Achse rückwärts zu einer bestimmten Positionsachse
: Die Achse, die rückwärts gescrollt werden soll , die relative Position anderer Achsen ändert den
Start nicht: Die Standardeinstellung ist Null, was ein vollständiges Scrollen bedeutet. Scrollt zu einem bestimmten Ort.
a = np.arange(8).reshape(2,2,2)
b=np.rollaxis(a,2)#将轴 2 滚动到轴 0(宽度到深度)
c=np.rollaxis(a,2,1) # 将轴 0 滚动到轴 1:(宽度到高度)
原数组:
[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
b:
[[[0 2]
[4 6]]
[[1 3]
[5 7]]]
c:
[[[0 2]
[1 3]]
[[4 6]
[5 7]]]
numpy.swapaxes (arr, axis1, axis2) tauschen die beiden Achsen des Arrays aus
Ändern Sie die Array-Abmessungen
numpy.broadcast (arr1, arr2) wird verwendet, um das Broadcast-Objekt zu imitieren. Es gibt ein Objekt zurück. Das Objekt kapselt das Ergebnis der Übertragung eines Arrays an ein anderes Array.
numpy.broadcast_to (Array, Form, Subok)
numpy.expand_dims (arr, axis) Erweitern Sie die Arrayform, indem Sie an der angegebenen Position eine neue Achse einfügen
numpy.squeeze (arr, axis) entfernt eindimensionale Einträge aus der Form eines bestimmten Arrays
Array verbinden
numpy.concatenate ((a1, a2,…), Achse) verbindet zwei oder mehr Arrays derselben Form entlang der angegebenen Achse
numpy.stack (Arrays, Achse) entlang der neuen Achsen gestapelte Array Sequenz
Array teilen
numpy.split (ary, indices_or_sections, axis) Hinweis: Wenn es sich um ein Array handelt, ist es die Position, die entlang der Achse geteilt werden soll (links und rechts öffnen, schließen).
Mit numpy.hsplit wird das Array horizontal aufgeteilt
numpy.vsplit wird entlang der vertikalen Achse geteilt
Hinzufügen und Löschen von Array-Elementen
numpy.resize (arr, shape) Wenn die Größe des neuen Arrays größer als die ursprüngliche Größe ist, enthält es eine Kopie der Elemente im ursprünglichen Array
numpy.append (arr, values, axis = None) Werte müssen dieselbe Form haben wie arr, axis: Standard ist None. Wenn die Achse nicht definiert ist, handelt es sich um eine horizontale Addition, und die Rückgabe ist immer ein eindimensionales Array!
numpy.insert (arr, obj, values, axis) Achsenparameter werden nicht übergeben, das Eingabearray wird vor dem Einfügen erweitert
Numpy.delete (arr, obj, axis) gibt ein neues Array zurück, das das angegebene Subarray aus dem Eingabearray löscht. Wie bei der Funktion insert () wird das Eingabearray erweitert, wenn keine Achsenparameter angegeben sind.
numpy.unique (arr, return_index, return_inverse, return_counts) entfernt doppelte Elemente im Array
NumPy-Bit-Arithmetik
bitweise_und führt eine bitweise Operation
an Array-Elementen durch bitweise_oder führt eine bitweise Operation an Array-Elementen durch
Invertieren der bitweisen Inversion
left_shift verschiebt die Bits der Binärdarstellung nach links right_shift verschiebt die Bits der Binärdarstellung nach
rechts
Numpy-Funktionsoperation
String-Funktionen (in der Gruppenklasse numpy.char)
add () verkettet die Zeichenfolgenelemente von zwei Arrays nacheinander
multiplizieren () gibt die Zeichenfolge zurück, die durch element
center () mehrfach verbunden ist.
centerized () konvertiert den ersten Buchstaben der Zeichenfolge in Großbuchstaben
title () konvertiert das Zeichen der erste Buchstabe jeder Wortkette wird in Großbuchstaben umgewandelt
niedriger () Array - Element Klein
() Array - Element Ober in Großbuchstaben
split () gibt die Zeichenfolgebegrenzer unterteilt sind, und gibt einen Array von Liste
der Teilungslinien () gibt das Element Die Liste der Zeilen in, die durch einen Zeilenumbruchstreifen
() geteilt wird, entfernt das bestimmte Zeichen am Anfang oder Ende des Elements.
Join () verbindet die Elemente im Array, indem das Trennzeichen
replace () angegeben wird, das alle Unterzeichen in der Zeichenfolge durch die neue Zeichenfolge ersetzt String
decode () Array-Elemente rufen str.decode auf
encode () Array-Elemente rufen str.encode auf
Mathematische Funktionen
sin (), cos (), tan ()
numpy.around (a, decimals) number gibt den gerundeten Wert der angegebenen Zahl zurück.
numpy.floor () rundet
numpy.ceil () auf
Arithmetische Funktion
add (), subtrahieren (), multiplizieren () und dividieren () addieren, subtrahieren, multiplizieren und dividieren
numpy.reciprocal () gibt die Parameter-für-Element-Umkehrung des
Restbetrags
numpy.power () zurück
NumPy statistische Funktionen
numpy.amin () und numpy.amax () berechnen die Minimal- und
Maximalwerte der Elemente im Array entlang der angegebenen Achse. numpy.ptp () Maximal-Minimalwert
numpy.percentile (a, q, Achse) q Perzentil, das berechnet werden soll Anzahl
numpy.median () Median
numpy.mean () ist der arithmetische Mittelwert der Summe der Anzahl der Elemente sich entlang der Achse des Trennelements
numpy.average () ist Achse nicht angegeben ist , wird das Array eingesetzt
Standardabweichung np.std
NP. var Varianz
NumPy-Sortierung, bedingte Pinselauswahlfunktion
numpy.sort (a, Achse, Art, Reihenfolge) Art: Der Standardwert ist 'quicksort' (schnelle Sortierung).
numpy.argsort () gibt den Indexwert des Array-Werts von klein nach groß zurück.
numpy.lexsort () sortiert mehrere Sequenzen, gibt den Indexwert zurück, setzt das Element mit höherer Priorität in den hinteren
sort_complex (a) sortiert die komplexen Zahlen in der Reihenfolge des Realteils und dann des Imaginärteils
(a, kth [, Achse) , kind, order]) Partitionssortierung
argpartition (a, kth [, axis, kind, order] kann das Schlüsselwort kind verwenden, um den Algorithmus anzugeben, mit dem das Array entlang der angegebenen Achse
numpy.argmax () und numpy.argmin () entlang der angegebenen Achse partitioniert wird Die Achse gibt den Index der größten und kleinsten Elemente zurück. Die
Funktion numpy.nonzero () gibt den Index der Nicht-Null-Elemente im Eingabearray zurück.
Numpy.where ()
numpy.extract () extrahiert Elemente aus dem Array gemäß einer bestimmten Bedingung und gibt die Elemente mit vollständigen Bedingungen zurück
Byte-Tausch
Die Funktion numpy.ndarray.byteswap () konvertiert die Bytes in jedem Element des ndarray in Big-Endian.
NumPy kopieren und anzeigen
Ansichten treten im Allgemeinen auf, wenn die Ansicht geändert wird, um den ursprünglichen Wert zu ändern
1. Die Numpy-Slicing-Operation gibt die Ansicht der Originaldaten zurück.
2. Rufen Sie die view () - Funktion von ndarray auf, um eine Ansicht zu generieren.
Die Kopie erfolgt im Allgemeinen, wenn der ursprüngliche Wert der Kopie unverändert bleibt
Rufen Sie zum Schneiden von Python-Sequenzen die Funktion deepCopy () auf.
Rufen Sie die copy () - Funktion von ndarray auf, um eine Kopie zu erstellen
NumPy Matrix Library (Matrix) numpy.matlib
numpy.matlib.empty (Form, Typ, Reihenfolge) gibt eine neue Matrix zurück.
numpy.matlib.zeros ()
numpy.matlib.ones ()
numpy.matlib.eye ()
numpy.matlib.identity () Einheitsmatrix
numpy.matlib Die .rand ()
-Matrix ist immer zweidimensional, und ndarray ist ein n-dimensionales Array. Beide Objekte sind austauschbar
NumPy lineare Algebra
Punkt Das Punktprodukt zweier Arrays, dh die Elemente werden entsprechend multipliziert.
vdot Das Punktprodukt zweier
innerer Vektoren Das innere Produkt
zweier Arrays matmul Das Matrixprodukt zweier Arrays
linalg.det () Die Determinante des Arrays
linalg.solve () Lösen Sie die lineare Matrixgleichung
linalg.inv () Berechnen Sie das multiplikative inverse Moment der Matrix
NumPy IO
numpy.save (file, arr, allow_pickle = True, fix_imports = True) Die
Funktion numpy.savez () speichert mehrere Arrays in einer Datei mit der Erweiterung npz.
np.loadtxt (FILENAME, dtype = int, delimiter = '')
np.savetxt (FILENAME, a, fmt = "% d", delimiter = ",")