Wie man Pandas-Datenrahmen in ein Numpy-Array konvertiert

  1. to_numpy Methode zur Konvertierung eines Dataframe in ein numpy Array
  2. to_records() Methode zur Konvertierung von dataframe in ein numpy 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-Datenrahmen nach den Werten einer Spalte sortiert
  • comments powered by Disqus