Heim  >  Artikel  >  Backend-Entwicklung  >  Beibehalten von Datentypen in der NumPy-Array-Verkettung: Datensatz-Arrays vs. strukturierte Arrays

Beibehalten von Datentypen in der NumPy-Array-Verkettung: Datensatz-Arrays vs. strukturierte Arrays

Patricia Arquette
Patricia ArquetteOriginal
2024-10-21 18:00:04371Durchsuche

Preserving Data Types in NumPy Array Concatenation: Record Arrays vs. Structured Arrays

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn