dtype¶
Der ndarray ist ein Container für homogene Daten, d.h. alle Elemente müssen vom gleichen Typ sein. Jedes Array hat einen dtype, ein Objekt, das den Datentyp des Arrays beschreibt:
[1]:
import numpy as np
rng = np.random.default_rng()
data = rng.random((7, 3))
dt = data.dtype
dt
[1]:
dtype('float64')
NumPy-Datentypen:
Typ |
Typ-Code |
Beschreibung |
|---|---|---|
|
|
Vorzeichenbehaftete und vorzeichenlose 8-Bit (1 Byte) Ganzzahltypen |
|
|
Vorzeichenbehaftete und vorzeichenlose 16-Bit (2 Byte) Ganzzahltypen |
|
|
Vorzeichenbehaftete und vorzeichenlose 32-Bit (4 Byte) Ganzzahltypen |
|
|
Vorzeichenbehaftete und vorzeichenlose 64-Bit (8 Byte) Ganzzahltypen |
|
|
Standard-Gleitkomma mit halber Genauigkeit |
|
|
Standard-Gleitkomma mit einfacher Genauigkeit; kompatibel mit C |
|
|
Standard-Gleitkomma mit doppelter Genauigkeit; kompatibel mit C |
|
|
Komplexe Zahlen, die durch zwei 32-, 64- bzw. 128-Gleitkommazahlen dargestellt werden |
|
|
Boolescher Typ, der die Werte |
|
|
Python-Objekttyp; ein Wert kann ein beliebiges Python-Objekt sein |
|
|
ASCII-Stringtyp mit fester Länge (1 Byte pro Zeichen); um z.B. einen Stringtyp mit der Länge 7 zu erstellen, verwendet |
|
|
Unicode-Typ mit fester Länge wobei die Anzahl der Bytes plattformspezifisch ist; verwendet dieselbe Spezifikationssemantik wie |
Anzahl der Elemente mit itemsize ermitteln:
[2]:
dt.itemsize
[2]:
8
Name des Datentypes ermitteln:
[3]:
dt.name
[3]:
'float64'
Datentyp überprüfen:
[4]:
dt.type is np.float64
[4]:
True
Datentyp ändern mit astype:
[5]:
data_float32 = data.astype(np.float32)
data_float32
[5]:
array([[0.8959591 , 0.95819676, 0.52365017],
[0.05653278, 0.18683353, 0.76510984],
[0.9283983 , 0.561397 , 0.8671029 ],
[0.86952984, 0.21159811, 0.6124638 ],
[0.03761354, 0.41308585, 0.5807331 ],
[0.9768227 , 0.3987061 , 0.5606387 ],
[0.5677797 , 0.4074486 , 0.9794231 ]], dtype=float32)