Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich NumPy-Arrays mit verschiedenen Datentypen und behalte dabei die Datentypen bei?

Wie kombiniere ich NumPy-Arrays mit verschiedenen Datentypen und behalte dabei die Datentypen bei?

Susan Sarandon
Susan SarandonOriginal
2024-10-21 17:59:18620Durchsuche

How to Combine NumPy Arrays with Different Datatypes While Preserving Data Types?

Kombinieren von Arrays mit mehreren Datentypen in NumPy

Der Wunsch, Arrays mit verschiedenen Datentypen in einem einzigen Array mit entsprechenden Datentypen in jeder Spalte zu verketten, stellt sich eine Herausforderung. Ein gängiger Ansatz, bei dem np.concatenate() verwendet wird, konvertiert leider das gesamte Array in den String-Datentyp, was zu Speicherineffizienzen führt.

Um diese Einschränkung zu überwinden, besteht eine praktikable Lösung darin, Datensatz-Arrays oder strukturierte Arrays zu verwenden.

Datensatzarrays

Datensatzarrays ermöglichen den Zugriff auf einzelne Datenfelder über Attribute. Durch Angabe des Datentyps jedes Felds können mehrere Datentypen in einem einzigen Array kombiniert werden:

<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'))

print(records)</code>

Ausgabe:

rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

Strukturierte Arrays

Strukturierte Arrays sind ähnlich und bieten die Möglichkeit, den Datentyp jeder Spalte zu definieren. Sie unterstützen jedoch keinen Attributzugriff wie Datensatz-Arrays:

<code class="python">arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)</code>

Ausgabe:

array([('a', 0), ('b', 1)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

Auswahl zwischen Datensatz- und strukturierten Arrays

Die Wahl zwischen Datensatzarrays und strukturierten Arrays hängt von den einzelnen Anwendungsfällen ab. Datensatzarrays bieten Komfort beim Attributzugriff, während strukturierte Arrays für komplexere Datenstrukturen bevorzugt werden können. Beide Ansätze bieten eine bequeme Möglichkeit, Arrays mit unterschiedlichen Datentypen in NumPy zu kombinieren und bieten so Flexibilität und Effizienz bei der Datenbearbeitung.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich NumPy-Arrays mit verschiedenen Datentypen und behalte dabei die Datentypen bei?. 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