NumPy-Arrays mit unterschiedlichen Datentypen verketten
Das Erstellen eines einzelnen NumPy-Arrays, das Daten aus mehreren Arrays mit unterschiedlichen D-Typen kombiniert, kann eine Herausforderung sein. Ein gängiger Ansatz besteht darin, die Funktion concatenate() zu verwenden. Dies kann jedoch dazu führen, dass das gesamte Array in einen einzelnen Datentyp, z. B. einen String, konvertiert wird. Dies kann hinsichtlich der Speichernutzung ineffizient sein.
Lösung: Arrays aufzeichnen
Um die ursprünglichen Datentypen beim Kombinieren von Arrays beizubehalten, sollten Sie die Verwendung eines Datensatzarrays in Betracht ziehen. Mit einem Datensatzarray können Sie ein strukturiertes Array mit benannten Spalten erstellen, von denen jede ihren eigenen Datentyp hat. Dieser Ansatz ermöglicht Ihnen den Zugriff auf einzelne Spalten über ihren Namen, genau wie auf Attribute eines Python-Objekts.
Um ein Datensatzarray zu erstellen, können Sie die Funktion rec.fromarrays() aus dem Numpy-Modul verwenden:
<code class="python">import numpy as np a = np.array(['a', 'b', 'c', 'd', 'e']) b = np.arange(5) records = np.rec.fromarrays((a, b), names=('keys', 'data'))</code>
Dieser Code erstellt ein Datensatzarray namens „records“ mit zwei Spalten: „keys“ mit einem String-Datentyp und „data“ mit einem Integer-Datentyp.
Strukturierte Arrays
Eine weitere Möglichkeit, Arrays mit unterschiedlichen D-Typen zu kombinieren, besteht darin, direkt ein strukturiertes Array zu erstellen. Ein strukturiertes Array ähnelt einem Datensatzarray, bietet jedoch keinen Attributzugriff auf einzelne Spalten:
<code class="python">arr = np.array([('a', 0), ('b', 1)], dtype=([('keys', '|S1'), ('data', 'i8')]))</code>
Dieser Code erstellt ein strukturiertes Array namens arr mit zwei Spalten: „keys“ mit einem String-Datentyp und „data ' mit einem ganzzahligen Datentyp.
Welcher Ansatz ist besser?
Der beste Ansatz für Ihren spezifischen Anwendungsfall hängt von Ihren Anforderungen ab. Datensatz-Arrays sind praktischer zu verwenden, insbesondere wenn Sie über den Namen auf einzelne Spalten zugreifen müssen. Strukturierte Arrays sind für die Speichernutzung effizienter, wenn Sie keinen Attributzugriff benötigen.
Das obige ist der detaillierte Inhalt vonBeibehalten von Datentypen in der NumPy-Array-Verkettung: Datensatz-Arrays vs. strukturierte Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!