Einführung
In diesem Lab behandeln wir die Datentypen in der NumPy-Bibliothek von Python. Wir werden die Syntax des dtype-Objekts und seine Parameter durchgehen.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.
Das NumPy dtype-Objekt verstehen
In NumPy sind alle Elemente eines Arrays Datentypobjekte, die auch als NumPy-Datentypen bekannt sind. Das Datentypobjekt wird verwendet, um die festgelegte Größe des Speichers zu implementieren, der einem Array entspricht.
Es liefert uns hauptsächlich Informationen über Folgendes:
- Der Datentyp (z.B.
integer,floatoder Python-object) - Die Größe des Daten
- Die Byte-Reihenfolge (little-endian oder big-endian)
- Im Falle eines strukturierten Typs informiert es uns über die Namen der Felder, den Datentyp jedes Felds und den Teil des Speicherblocks, den jedes Feld einnimmt.
- Im Falle, dass der Datentyp ein Unterarray ist, informiert es uns über seine Form und seinen Datentyp
Erstellen eines NumPy dtype-Objekts
Das erforderliche Syntax, um das dtype-Objekt zu erstellen, ist unten angegeben:
numpy.dtype(object, align, copy)
Folgende Beschreibung der Argumente des obigen Konstruktors:
- object: Dieses Argument wird verwendet, um das Objekt zu repräsentieren, das in den Datentyp umgewandelt werden soll.
- align: Es ist ein optionales Argument. Es wird verwendet, um Ausrichtungszuschläge zu den Feldern hinzuzufügen, um der Ausgabe eines C-Compilers für eine ähnliche C-Struktur zu entsprechen. Dieses Argument kann auf einen beliebigen booleschen Wert gesetzt werden.
- copy: Dieses Argument wird verwendet, um eine Kopie des
dtype-Objekts zu erstellen, und es ist ebenfalls ein optionales Argument.
Numerische Datentypen in NumPy
Die NumPy-Bibliothek bietet im Vergleich zu Python hauptsächlich einen höheren Bereich von numerischen Datentypen. Die Liste der numerischen Datentypen ist in der folgenden Tabelle aufgeführt:
| Nr. | Datentyp | Beschreibung |
|---|---|---|
| 1 | bool_ |
Dies wird verwendet, um den booleschen Wert anzugeben, der wahr oder falsch ist. Es wird als Byte gespeichert. |
| 2 | int_ |
Dies ist der Standardtyp für einen Integer. Er ist identisch zum langen Typ in C, der hauptsächlich 64-Bit- oder 32-Bit-Integer enthält. |
| 3 | intc |
Dies ist ähnlich zum C-Integer (C int), da es 32- oder 64-Bit-Int repräsentiert. |
| 4 | intp |
Dies wird verwendet, um die Integer zu repräsentieren, die zur Indizierung verwendet werden. |
| 5 | int8 |
Dies ist der 8-Bit-Integer, der einem Byte entspricht. Der Wertebereich liegt zwischen -128 und 127. |
| 6 | int16 |
Dies ist der 2-Byte- (16-Bit-) Integer und der Wertebereich liegt zwischen -32768 und 32767. |
| 7 | int32 |
Dies ist der 4-Byte- (32-Bit-) Integer. Der Wertebereich liegt zwischen -2147483648 und 2147483647. |
| 8 | int64 |
Dies ist der 8-Byte- (64-Bit-) Integer und der Wertebereich liegt zwischen -9223372036854775808 und 9223372036854775807. |
| 9 | uint8 |
Dies ist ein 1-Byte- (8-Bit-) unsigned Integer. |
| 10 | uint16 |
Dies ist ein 2-Byte- (16-Bit-) unsigned Integer. |
| 11 | uint32 |
Dies ist ein 4-Byte- (32-Bit-) unsigned Integer. |
| 12 | uint64 |
Dies ist ein 8-Byte- (64-Bit-) unsigned Integer. |
| 13 | float_ |
Dies ist identisch zu float64. |
| 14 | float16 |
Dies wird verwendet, um die halbgenaue Gleitkommazahl zu repräsentieren. 5 Bits werden für den Exponenten reserviert. 10 Bits werden für die Mantisse reserviert und 1 Bit für das Vorzeichen. |
| 15 | float32 |
Dies wird verwendet, um die einfache Genauigkeit der Gleitkommazahl zu repräsentieren. 8 Bits werden für den Exponenten reserviert, 23 Bits für die Mantisse und 1 Bit für das Vorzeichen. |
| 16 | float64 |
Dies wird verwendet, um die doppelten Genauigkeit der Gleitkommazahl zu repräsentieren. 11 Bits werden für den Exponenten reserviert, 52 Bits für die Mantisse und 1 Bit für das Vorzeichen. |
| 17 | complex_ |
Dies ist identisch zu complex128. |
| 18 | complex64 |
Dies wird verwendet, um die komplexe Zahl zu repräsentieren, wobei der reelle und der imaginäre Teil jeweils 32 Bits aufweisen. |
| 19 | complex128 |
Dies wird verwendet, um die komplexe Zahl zu repräsentieren, wobei der reelle und der imaginäre Teil jeweils 64 Bits aufweisen. |
Zeichen, die zum Darstellen von dtype in NumPy verwendet werden
Hier ist die Liste der Zeichen, die in NumPy zum Darstellen von dtype verwendet werden:
i: Ganzzahlb: Booleschu: Unzeichenbehaftete Ganzzahlf: Gleitkommazahlc: Komplexe Gleitkommazahlm: ZeitdifferenzM: Datum und UhrzeitO: ObjektS: ZeichenketteU: Unicode-ZeichenketteV: Fixierter Speicherblock für andere Typen (void)
Beispiele
Beispiel 1: Bestimmen des Datentyps eines Arrays
Wir versuchen, den Datentyp des Arrays, das Strings enthält, herauszufinden:
import numpy as np
ar1 = np.array(['chair', 'book', 'notebook'])
print(ar1.dtype)
Ausgabe:
<U8
Beispiel 2: Erstellen eines dtype-Objekts
Wir können ein dtype-Objekt mit der numpy.dtype-Funktion erstellen.
import numpy as np
dt1 = np.dtype(np.int64)
print (dt1)
Ausgabe:
int64
Beispiel 3: Verwenden der kürzeren Darstellung numerischer Datentypen
Im folgenden Beispiel verwenden wir die kürzere Darstellung numerischer Datentypen:
import numpy as np
a = np.dtype('i4')
print (a)
Ausgabe:
int32
Beispiel 4: Erstellen eines strukturierten dtype-Objekts
Wir werden einen strukturierten Datentyp erstellen und ihn auf ein ndarray-Objekt anwenden:
import numpy as np
## info mit key und value
a = np.dtype([('rollno',np.int16)])
print(a)
a = np.array([(101,),(201,),(301,)], dtype=a)
print(a)
Ausgabe:
[('rollno', '<i2')]
[(101,) (201,) (301,)]
Beispiel 5: Ändern des Datentyps
Im folgenden Beispiel ändern wir den Datentyp von float zu integer, indem wir int als Parameterwert verwenden:
import numpy as np
ar= np.array([1.1, 2.1, 3.1])
newarr = ar.astype(int)
print(newarr)
print(newarr.dtype)
Ausgabe:
[1 2 3]
int64
Zusammenfassung
In diesem Lab haben wir das Konzept von Datentypen in einem Array behandelt. Wir haben gesehen, wie das dtype-Objekt verwendet wird, um den Datentyp von Werten anzugeben, seine Syntax und die für das dtype-Objekt erforderlichen Parameter. Wir haben auch verschiedene numerische Datentypen behandelt und dann einige Beispiele zur Veranschaulichung gegeben.