Вы можете использовать следующий синтаксис для преобразования кадра данных pandas в массив NumPy:
df.to_numpy ()
В следующих примерах показано, как использовать этот синтаксис на практике.
Пример 1: преобразование DataFrame с одинаковыми типами данных
В следующем коде показано, как преобразовать DataFrame pandas в массив NumPy, когда каждый из столбцов в DataFrame имеет один и тот же тип данных:
import pandas as pd
#create data frame
df1 = pd.DataFrame({'rebounds': [7, 7, 8, 13, 7, 4],
'points': [5, 7, 7, 9, 12, 9],
'assists': [11, 8, 10, 6, 6, 5]})
#view data frame
print(df1)
rebounds points assists
0 7 5 11
1 7 7 8
2 8 7 10
3 13 9 6
4 7 12 6
5 4 9 5
#convert DataFrame to NumPy array
new = df1.to_numpy ()
#view NumPy array
print(new)
[[ 7 5 11]
[ 7 7 8]
[ 8 7 10]
[13 9 6]
[ 7 12 6]
[ 4 9 5]]
#confirm that *new* is a NumPy array
print(type(new))
<class 'numpy.ndarray'>
#view data type
print(new. dtype )
int64
Массив Numpy имеет тип данных int64, поскольку каждый столбец в исходном кадре данных pandas был целым числом.
Пример 2: преобразование DataFrame со смешанными типами данных
В следующем коде показано, как преобразовать DataFrame pandas в массив NumPy, когда столбцы в DataFrame не все имеют один и тот же тип данных:
import pandas as pd
#create data frame
df2 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E', 'F'],
'points': [5, 7, 7, 9, 12, 9],
'assists': [11, 8, 10, 6, 6, 5]})
#view data frame
print(df2)
player points assists
0 A 5 11
1 B 7 8
2 C 7 10
3 D 9 6
4 E 12 6
5 F 9 5
#convert DataFrame to NumPy array
new = df2. to_numpy ()
#view NumPy array
print(new)
[['A' 5 11]
['B' 7 8]
['C' 7 10]
['D' 9 6]
['E' 12 6]
['F' 9 5]]
#confirm that *new* is a NumPy array
print(type(new))
<class 'numpy.ndarray'>
#view data type
print(new. dtype )
object
Массив Numpy имеет тип данных объекта , поскольку не каждый столбец в исходном фрейме данных pandas имеет один и тот же тип данных.
Пример 3: преобразование DataFrame и установка значений NA
В следующем коде показано, как преобразовать DataFrame pandas в массив NumPy и указать значения, которые будут установлены для любых значений NA в исходном DataFrame:
import pandas as pd
#create data frame
df3 = pd.DataFrame({'player': ['A', 'B', pd.NA , 'D', 'E', 'F'],
'points': [5, 7, pd.NA , 9, pd.NA , 9],
'assists': [11, 8, 10, 6, 6, 5]})
#view data frame
print(df3)
player points assists
0 A 5 11
1 B 7 8
2 <NA> <NA> 10
3 D 9 6
4 E <NA> 6
5 F 9 5
#convert DataFrame to NumPy array
new = df3. to_numpy (na_value='none')
#view NumPy array
print(new)
[['A' 5 11]
['B' 7 8]
['none' 'none' 10]
['D' 9 6]
['E' 'none' 6]
['F' 9 5]]
#confirm that *new* is a NumPy array
print(type(new))
<class 'numpy.ndarray'>
#view data type
print(new. dtype )
object
Дополнительные ресурсы
Как создать фрейм данных Pandas из массива NumPy
Как преобразовать список в DataFrame в Pandas
Как преобразовать DataFrame в список в Pandas