[Python-Datenanalyse] numpy Grundlagen

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
Fügen Sie hier eine Bildbeschreibung ein

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 = ",")

Veröffentlicht 4 Originalartikel · erhalten 1 · Aufrufe 128

Ich denke du magst

Origin blog.csdn.net/qq_34385466/article/details/104445071
Empfohlen
Rangfolge