English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Beschreibung und Beispiele der NumPy-Array-Attribute
Die Dimensionen der NumPy-Arrays werden als Rang (rank) bezeichnet, d.h. die Dimension des Arrays, der Rang eines eindimensionalen Arrays ist 1,der Rang einer zweidimensionalen Matrix ist 2,weiterhin.
In NumPy wird jeder lineare Array als eine Achse (axis) bezeichnet, axis=0 bedeutet, entlang der 0-Achse zu operieren, d.h. Operationen an jeder Spalte durchzuführen; axis=1,bedeutet, entlang der1Achsenoperation, d.h. Operationen an jeder Zeile durchzuführen.
Zum Beispiel ist ein zweidimensionales Array wie zwei eindimensionale Arrays, wobei jeder Element des ersten eindimensionalen Arrays wiederum ein eindimensionales Array ist.
Daher ist ein eindimensionales Array das Achse (axis) in NumPy, die erste Achse entspricht dem unteren Array, die zweite Achse ist ein Array im unteren Array. Und die Anzahl der Achsen - der Rang, ist die Dimension des Arrays.
Von den wichtigen ndarray-Objektattributen in NumPy gibt es
Die von NumPy unterstützten Datentypen sind mehr als Eingebauter Datentyp von PythonEs gibt viele, kann im Allgemeinen mit den Datentypen der Sprache C korrespondieren, wobei einige Typen mit den eingebauten Typen von Python korrespondieren. Nachstehend ist eine Tabelle mit den häufig verwendeten NumPy-Basistypen aufgeführt.
ndarray.ndim - Der Rang, d.h. die Anzahl der Achsen oder Dimensionen.ndarray.shape - Die Dimensionen des Arrays, für Matrizen n Zeilen und m Spalten.ndarray.size - Gesamtzahl der Arrayelemente, was äquivalent ist zu n in .shape*Der Wert von m.ndarray.dtype - Der Elementtyp des ndarray-Objekts.ndarray.itemsize - Größe jedes Elements des ndarray-Objekts in Bytes.ndarray.flags - Speicherinformationen des ndarray-Objekts.ndarray.real - Der reelle Teil der ndarray-Elemente.ndarray.imag - Die imaginäre Teilmenge der ndarray-Elemente.ndarray.data - Buffer, der die tatsächlichen Arrayelemente enthält, da durch die Verwendung der Arrayindizes in der Regel Elemente abgerufen werden, wird dieser Attribut normalerweise nicht verwendet.
ndarray.ndim wird verwendet, um die Dimensionen des Arrays zurückzugeben, was dem Rang entspricht.
>>> import numpy as np >>> a = np.arange(24) >>> print(a.ndim) 1 # a besitzt nur eine Dimension >>> b = a.reshape(2,4,3) >>> print(b.ndim) 3 # b besitzt jetzt drei Dimensionen
ndarray.shape stellt die Dimensionen des Arrays dar und gibt ein Tupel zurück, dessen Länge die Anzahl der Dimensionen ist, d.h. das Attribut ndim (Rang). Zum Beispiel, ein zweidimensionales Array, dessen Dimensionen "Zeilenanzahl" und "Spaltenanzahl" darstellen.
ndarray.shape kann auch zur Anpassung der Arraygröße verwendet werden.
>>> import numpy as np >>> a = np.array([1,2,3,4,5,6],[4,5,6,7,8,9]) >>> print(a.shape) (2, 6) >>> a.shape = (6,2) >>> print(a) [[1 2] [3 4] [5 6] [4 5] [6 7] [8 9]]
Gleichzeitig bietet NumPy auch die Funktion reshape an, um die Größe des Arrays anzupassen, ein konkretes Beispiel ist wie folgt:
>>> import numpy as np >>> a = np.array([1,2,3,4,5,6],[4,5,6,7,8,9]) >>> b = a.reshape(6,2) >>> print(b) [[1 2] [3 4] [5 6] [4 5] [6 7] [8 9]]
ndarray.size ist die Anzahl der Elemente im Array. Gleich np.prod(a.shape), d.h. das Produkt der Arraygrößen.
a.size gibt eine standardmäßige Python-Ganzzahl mit beliebiger Genauigkeit zurück. Für andere Methoden, die denselben Wert liefern, könnte dies nicht der Fall sein (z.B. die empfohlene Methode np.prod(a.shape), die ein Beispiel einer Instanz von np.int_ zurückgibt), und wenn dieser Wert in Berechnungen verwendet wird, die möglicherweise eine Überlaufung des festen Größen der Ganzzahlstypen verursachen, könnte dies relevant sein.
>>> import numpy as np >>> x = np.zeros((3, 5, 2), dtype=np.complex128) >>> x.size 30 >>> np.prod(x.shape) 30
>>> import numpy as np >>> x array([[0, 1], [2, 3]) >>> x.dtype dtype('int32') >>> type(x.dtype)
ndarray.itemsize gibt die Größe jedes Elements im Array in Bytes zurück.
z.B. ein Elementtyp von float64 Das Attribut itemsiz des Arrays ndarray ist 8(float64 verwendet 64 Bits,jeder Byte hat eine Länge von 8,daher 64/8,verwendet 8 字节),z.B. ein Elementtyp von complex32 Das Array-Attribut item von 4(32/8)。
>>> import numpy as np >>> x = np.array([1,2,3,4,5], dtype = np.int8) >>> print(x.itemsize) 1 >>> y = np.array([1,2,3,4,5], dtype = np.float64) >>> print(y.itemsize) 8
ndarray.flags gibt die Speicherinformationen des ndarray-Objekts zurück, einschließlich der folgenden Attribute:
C_CONTIGUOUS (C) - Die Daten befinden sich in einem einzigen, nach dem C-Stil kontinuierlichen Abschnitt.F_CONTIGUOUS (F) - Die Daten befinden sich in einem einzigen, nach dem Fortran-Stil kontinuierlichen Abschnitt.OWNDATA (O) - Der Array besitzt das von ihm verwendete Speicher oder leiht es von einem anderen Objekt.WRITEABLE (W) - Der Datenbereich kann written werden. Setzen Sie diesen Wert auf False, dann sind die Daten schreibgeschützt.ALIGNED (A) - Daten und alle Elemente sind angemessen auf die Hardware ausgerichtet.UPDATEIFCOPY (U) - Dieser Array ist eine Kopie anderer Arrays. Wenn dieser Array freigegeben wird, werden die Inhalte des ursprünglichen Arrays aktualisiert.
>>> import numpy as np >>> a = np.array([1,2,3,4,5] >>> print(a.flags) C_CONTIGUOUS : True F_CONTIGUOUS : True OWNDATA : True WRITEABLE : True ALIGNED : True WRITEBACKIFCOPY : False UPDATEIFCOPY : False
>>> import numpy as np >>> x = np.sqrt([1+0j, 0+1j]) >>> x.real array([1. , 0.70710678] >>> x.real.dtype dtype('float64') >>> x.imag array([0. , 0.70710678] >>> x.imag.dtype dtype('float64')