Como converter Pandas Dataframe em NumPy Array
-
to_numpy
Método para converter PandasDataFrame
paraNumPy
Array -
Values()
Método para converter PandasDataFrame
emNumPy
Array -
Método
To_records()
para converterDataFrame
em array de registrosNumPy
Aprenderemos o método to_numpy()
para converter o pandas.Dataframe
para o NumPy
array, introduzido a partir do pandas v0.24.0 substituindo o método depreciado .values
. Podemos definir to_numpy
em Index
, Series
, e DataFrame
objetos.
O método obsoleto DataFrame.values()
tem um comportamento inconsistente; portanto, não é recomendado utilizar de acordo com a documentação API de Pandas. Entretanto, analisaremos um exemplo deste método se você estiver utilizando uma versão mais antiga de Pandas.
Também apresentaremos outra abordagem utilizando o método DataFrame.to_records()
para converter o dado DataFrame
para uma array de registros NumPy
.
to_numpy
Método para converter Pandas DataFrame
para NumPy
Array
O pandas.Dataframe
é uma estrutura de dados tabular 2d com linhas e colunas. Esta estrutura de dados pode ser convertida em uma array NumPy
utilizando o método 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))
Resultado:
[[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'>
O método Pandas DataFrame to_numpy()
converte o DataFrame
em um array NumPy
como mostrado acima.
Values()
Método para converter Pandas DataFrame
em NumPy
Array
Poderíamos também utilizar o método Dataframe.values()
da seguinte forma.
# 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))
Resultado:
[[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 quisermos incluir a coluna de índice na array NumPy
convertida, precisamos aplicar reset_index()
com 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))
Resultado:
[[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'>
Método To_records()
para converter DataFrame
em array de registros NumPy
Se você precisar dos dtypes
, to_records()
é a melhor opção a ser utilizada. Os dois to_numpy()
e to_records()
são quase os mesmos:
# 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))
Resultado:
[(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'>
Artigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum