Converti Pandas Dataframe in NumPy Array
-
Metodo
to_numpy
per convertire PandasDataFrame
in arrayNumPy
-
Metodo
Values()
per convertire PandasDataFrame
inNumPy
Array -
Metodo
To_records()
per convertireDataFrame
in un array di recordNumPy
Impareremo il metodo to_numpy()
per convertire l’array pandas.Dataframe
in NumPy
, introdotto da pandas v0.24.0 che sostituisce il metodo deprecato .values
. Possiamo definire to_numpy
sugli oggetti Index
, Series
e DataFrame
.
Il metodo deprecato DataFrame.values()
ha un comportamento incoerente; pertanto, non è consigliabile utilizzarlo in base alla documentazione dell’API di Pandas. Tuttavia, esamineremo un esempio di questo metodo se stai utilizzando una versione precedente di Pandas.
Introdurremo anche un altro approccio che utilizza il metodo DataFrame.to_records()
per convertire il dato DataFrame
in un array di record NumPy
.
Metodo to_numpy
per convertire Pandas DataFrame
in array NumPy
pandas.Dataframe
è una struttura dati tabulare 2d con righe e colonne. Questa struttura dati può essere convertita in un array NumPy
usando il metodo to_numpy
:
# 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))
Produzione:
[[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'>
Il metodo Pandas DataFrame to_numpy()
converte il DataFrame
in un array NumPy
come mostrato sopra.
Metodo Values()
per convertire Pandas DataFrame
in NumPy
Array
Potremmo anche usare il metodo Dataframe.values()
come segue.
# 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))
Produzione:
[[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'>
Se vogliamo includere la colonna index nell’array NumPy
convertito, dobbiamo applicare reset_index()
con dataframe.values
.
# 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))
Produzione:
[[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'>
Metodo To_records()
per convertire DataFrame
in un array di record NumPy
Se hai bisogno di dtypes
, to_records()
è l’opzione migliore da usare. Per quanto riguarda le prestazioni, sia to_numpy()
che to_records()
sono quasi le stesse:
# 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))
Produzione:
[(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'>
Articolo correlato - Pandas DataFrame
- Come ottenere le intestazioni delle colonne DataFrame Pandas come lista
- Come cancellare la colonna DataFrame Pandas DataFrame
- Come convertire la colonna DataFrame in data e ora in pandas
- Converti un Float in un Integer in Pandas DataFrame
- Ordina Pandas DataFrame in base ai valori di una colonna
- Ottieni l'aggregato di Pandas Group-By e Sum