Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiert man einen Pandas-DataFrame effizient in ein NumPy-Array?

Wie konvertiert man einen Pandas-DataFrame effizient in ein NumPy-Array?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 17:24:10867Durchsuche

How to Efficiently Convert a Pandas DataFrame to a NumPy Array?

Pandas-Datenrahmen in NumPy-Array konvertieren

Um einen Pandas-Datenrahmen in ein NumPy-Array umzuwandeln, wird empfohlen, die Methode df.to_numpy() zu verwenden. Dieser Ansatz ist df.values ​​aus mehreren Gründen vorzuziehen, wie unten beschrieben.

Verwenden von df.to_numpy()

Aufrufen von df.to_numpy() Die Methode ermöglicht die Extraktion des zugrunde liegenden NumPy-Arrays aus dem Datenrahmen.

import numpy as np
import pandas as pd

index = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)
df = df.rename_axis('ID')

arr = df.to_numpy()
print(arr)

Ausgabe:

[[ nan  0.2  nan]
 [ nan  nan  0.5]
 [ nan  0.2  0.5]
 [ 0.1  0.2  nan]
 [ 0.1  0.2  0.5]
 [ 0.1  nan  0.5]
 [ 0.1  nan  nan]]

Dtypes beibehalten

Wenn das Ziel darin besteht, die Datentypen im Ergebnis beizubehalten NumPy-Array, ein möglicher Ansatz beinhaltet die Verwendung von DataFrame.to_records(), wie gezeigt unten:

records_array = df.to_records()
print(records_array)

Ausgabe:

rec.array([('a', 1, 4, 7), ('b', 2, 5, 8), ('c', 3, 6, 9)],
           dtype=[('ID', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<i8')])

Alternativ kann man np.rec.fromrecords verwenden:

v = df.reset_index()
records_array = np.rec.fromrecords(v, names=v.columns.tolist())
print(records_array)

Ausgabe:

rec.array([('a', 1, 4, 7), ('b', 2, 5, 8), ('c', 3, 6, 9)],
           dtype=[('index', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<i8')])

Die Verwendung einer dieser Methoden stellt die Erhaltung der Datentypen im NumPy-Array sicher.

Das obige ist der detaillierte Inhalt vonWie konvertiert man einen Pandas-DataFrame effizient in ein NumPy-Array?. 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