Pandas und NumPy sind Eckpfeiler des Python-Ökosystems für Data Science. Pandas zeichnet sich durch die Datenmanipulation mit seiner DataFrame-Struktur aus, während NumPy mit seinen Arrays effiziente numerische Berechnungen ermöglicht. Häufig ist ein nahtloser Übergang zwischen diesen Bibliotheken erforderlich, wobei ein Pandas DataFrame für weitere Analysen oder Verarbeitung in ein NumPy-Array konvertiert wird. Dieser Artikel beschreibt die effektivsten Methoden für diese Konvertierung.
Inhaltsverzeichnis
to_numpy()
Methode: Der empfohlene Ansatz
Die to_numpy()
Methode ist die einfachste und effizienteste Möglichkeit, einen Pandas DataFrame in ein NumPy-Array zu konvertieren. Sie wandelt die Werte des DataFrames direkt in ein NumPy-Array um und bietet Flexibilität bei der Angabe des Datentyps.
import pandas as pd
import numpy as np
# Beispiel DataFrame
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7.1, 8.2, 9.3]}
df = pd.DataFrame(data)
# Konvertierung in NumPy-Array
numpy_array = df.to_numpy()
print("Standard-Datentyp:n", numpy_array)
# Datentyp spezifizieren
numpy_array_float = df.to_numpy(dtype=np.float64)
print("nFloat64-Datentyp:n", numpy_array_float)
numpy_array_int = df.to_numpy(dtype=np.int32)
print("nInt32-Datentyp (Float-Werte werden abgeschnitten):n", numpy_array_int)
Beachten Sie, wie die Angabe von dtype
eine präzise Steuerung des Typs des Ausgabe-Arrays ermöglicht. Wird dtype
weggelassen, leitet to_numpy()
intelligent den am besten geeigneten Typ aus den Daten des DataFrames ab.
.values
Attribut: Ein Legacy-Ansatz
Das .values
Attribut liefert ebenfalls eine NumPy-Array-Darstellung der Daten des DataFrames. Obwohl es funktional ähnlich zu to_numpy()
ist, wird es als Legacy-Methode betrachtet. to_numpy()
wird aufgrund seiner Klarheit und expliziten Natur bevorzugt.
import pandas as pd
import numpy as np
# Beispiel DataFrame
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)
# Konvertierung mit .values
numpy_array = df.values
print(numpy_array)
Die Ausgabe ist identisch mit der Verwendung von to_numpy()
, aber to_numpy()
ist die modernere und empfohlene Vorgehensweise.
to_records()
Methode: Erstellen von strukturierten Arrays
Wenn Sie ein NumPy-Array mit benannten Feldern (ähnlich einem strukturierten Array) benötigen, verwenden Sie die to_records()
Methode. Sie konvertiert den DataFrame in ein NumPy-Record-Array, wobei jede Spalte ein benanntes Feld wird.
import pandas as pd
import numpy as np
# Beispiel DataFrame
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)
# Konvertierung in NumPy-Record-Array
numpy_record_array = df.to_records()
print(numpy_record_array)
print("nDatentyp des Record-Arrays:")
print(numpy_record_array.dtype)
Beachten Sie die Aufnahme des Index in das Record-Array. Diese Methode ist besonders wertvoll, wenn die Beibehaltung von Spaltennamen innerhalb der NumPy-Array-Struktur für die nachfolgende Analyse entscheidend ist.
Zusammenfassend lässt sich sagen, dass to_numpy()
die empfohlene Methode für allgemeine DataFrame-zu-NumPy-Array-Konvertierungen ist. .values
bietet eine funktional äquivalente Alternative, während to_records()
am besten für strukturierte Arrays geeignet ist, die benannte Felder benötigen. Die optimale Wahl hängt von den spezifischen Anforderungen und der gewünschten Struktur des resultierenden NumPy-Arrays ab.