Wie verkettet man Arrays mit unterschiedlichen Datentypen und erhält die Speichereffizienz aufrecht?

Barbara Streisand
Freigeben: 2024-10-21 17:56:03
Original
602 Leute haben es durchsucht

How to Concatenate Arrays with Different Datatypes and Maintain Memory Efficiency?

Arrays mit mehreren Datentypen verketten

Beim Umgang mit Daten unterschiedlichen Typs ist es oft notwendig, diese in einem einzigen Array zu kombinieren. Dies kann effizient durchgeführt werden, ohne das gesamte Array in einen einzigen Datentyp zu konvertieren.

Stellen Sie sich das folgende Szenario vor: Sie haben zwei Arrays, A mit Zeichenfolgen und B mit Ganzzahlen. Das Ziel besteht darin, ein kombiniertes Array „combined_array“ zu erstellen, in dem jede Spalte ihren ursprünglichen Datentyp behält.

Während der Verkettung von A und B mit np.concatenate erscheint „combined_array = np.concatenate((A, B), axis = 1)“. Ganz einfach, es konvertiert das gesamte Array standardmäßig in dtype=string, was zu Speicherineffizienzen führt.

Lösung: Arrays und strukturierte Arrays aufzeichnen

Ein effektiver Ansatz ist die Verwendung Datensatz-Arrays oder strukturierte Arrays.

Datensatz-Arrays:

Datensatz-Arrays bieten eine flexible Möglichkeit, mehrere Datentypen in einem einzigen Array zu speichern. Auf die einzelnen Felder kann über Attribute zugegriffen werden:

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)
# rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
#   dtype=[('keys', '|S1'), ('data', '<i8')])
print(records['keys'])
# rec.array(['a', 'b', 'c', 'd', 'e'], 
#   dtype='|S1')
print(records['data'])
# array([0, 1, 2, 3, 4])
Nach dem Login kopieren

Strukturierte Arrays:

Ähnlich wie Datensatzarrays ermöglichen strukturierte Arrays die Angabe eines Datentyps für jedes Feld :

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

print(arr)
# array([('a', 0), ('b', 1)], 
#   dtype=[('keys', '|S1'), ('data', '<i8')])
Nach dem Login kopieren

Beachten Sie, dass Datensatzarrays Attributzugriff ermöglichen, strukturierte Arrays jedoch nicht.

Das obige ist der detaillierte Inhalt vonWie verkettet man Arrays mit unterschiedlichen Datentypen und erhält die Speichereffizienz aufrecht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!