Wie man Pandas-DataFrame in ein NumPy-Array konvertiert
-
to_numpy
Methode zur Konvertierung einesDataFrame
in einNumPy
Array -
to_records()
Methode zur Konvertierung vonDataFrame
in einNumPy
Datensatz-Array
Wir werden die to_numpy()
Methode lernen, um den pandas.Dataframe
in ein NumPy
Array zu konvertieren, das mit Pandas v0.24.0 eingeführt wurde und die alte .values
Methode ersetzt. Wir können to_numpy
für Index
, Series
, und DataFrame
Objekte definieren.
Alte DataFrame.values
haben ein inkonsistentes Verhalten, dessen Verwendung laut Pandas API-Dokumentation nicht empfohlen wird. Wir werden uns jedoch ein Beispiel für diese Methode ansehen, falls Sie eine ältere Version verwenden.
Eine andere alte Methode DataFrame.as_matrix()
ist jetzt veraltet, verwenden Sie sie nicht!
Wir werden auch einen anderen Ansatz vorstellen, bei dem die Methode DataFrame.to_records()
verwendet wird, um den gegebenen DataFrame
in ein NumPy
Datensatz-Array zu konvertieren.
to_numpy
Methode zur Konvertierung eines DataFrame
in ein NumPy
Array
pandas.Dataframe
ist eine 2d tabellarische Datenstruktur mit Zeilen und Spalten. Diese Datenstruktur kann mit der Methode to_numpy
in ein NumPy
Array umgewandelt werden:
# python 3.x
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.randint(0, 10, (6, 4)), columns=["a", "b", "c", "d"])
nmp = df.to_numpy()
print(nmp)
print(type(nmp))
Ausgabe:
[[5 5 1 3]
[1 6 6 0]
[9 1 2 0]
[9 3 5 3]
[7 9 4 9]
[8 1 8 9]]
<class 'numpy.ndarray'>
Das Gleiche kann durch Verwendung der Methode Dataframe.values
wie folgt erreicht werden:
# python 3.x
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.randint(0, 10, (6, 4)), columns=["a", "b", "c", "d"])
nmp = df.values
print(nmp)
print(type(nmp))
Ausgabe:
[[8 8 5 0]
[1 7 7 5]
[0 2 4 2]
[6 8 0 7]
[6 4 5 1]
[1 8 4 7]]
<class 'numpy.ndarray'>
Wenn wir Indizes
in ein NumPy
Array einbinden wollen, müssen wir reset_index()
mit Dataframe.values
anwenden:
# python 3.x
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.randint(0, 10, (6, 4)), columns=["a", "b", "c", "d"])
nmp = df.reset_index().values
print(nmp)
print(type(nmp))
Ausgabe:
[[0 1 0 3 7]
[1 8 2 5 1]
[2 2 2 7 3]
[3 3 4 3 7]
[4 5 4 4 3]
[5 2 9 7 6]]
<class 'numpy.ndarray'>
to_records()
Methode zur Konvertierung von DataFrame
in ein NumPy
Datensatz-Array
Wenn Sie die dtypes
benötigen, ist to_records()
die beste Option, die Sie verwenden sollten. In Bezug auf die Leistung sind sowohl to_numpy()
als auch to_records()
fast gleich:
# python 3.x
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.randint(0, 10, (6, 4)), columns=["a", "b", "c", "d"])
nmp = df.to_records()
print(nmp)
print(type(nmp))
Ausgabe:
[(0, 0, 4, 6, 1)
(1, 3, 1, 7, 1)
(2, 9, 1, 6, 4)
(3, 1, 4, 6, 9)
(4, 9, 1, 3, 9)
(5, 2, 5, 7, 9)]
<class 'numpy.recarray'>
Verwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum