Pandas Dataframe.to_numpy() — это встроенный метод, который используется для преобразования DataFrame в массив Numpy. DataFrame — это двумерная структура данных, которая может иметь изменяемый размер и представлена в табличной структуре. Чтобы преобразовать эту структуру данных в массив Numpy, мы используем функцию DataFrame.to_numpy().
Тип данных возвращаемого массива будет стандартным типом данных Numpy для всех типов в DataFrame. Например, если тип данных — float32, результирующий тип данных также будет float32.
Синтаксис
|
1 |
DataFrame.to_numpy(dtype= None, copy= False) |
Параметры
Функция DataFrame.to_numpy() содержит следующие два параметра:
- dtype: используется для указания типа данных, которые мы передаем (пример: строка, целое число).
- copy: это логическое значение, и по умолчанию оно принимает False. Гарантирует, что возвращаемое значение не является представлением другого массива.
Возвращаемое значение
Метод to_numpy() возвращает пустой массив.

Примеры с DataFrame.to_numpy()
Напишем программу, показывающую работу DataFrame.to_numpy().
Пример 1
См. следующий код.
|
1 2 3 4 5 6 7 |
import pandas as pd data = pd.DataFrame({'year': [2015, 2016, 2017, 2018, 2019, 2020], 'month': [2, 3, 4, 5, 6, 7], 'day': [4, 5, 6, 7, 8, 9]}) data_numpy = data.to_numpy() print(data_numpy) |
Выход:
|
1 2 3 4 5 6 |
[[2015 2 4] [2016 3 5] [2017 4 6] [2018 5 7] [2019 6 8] [2020 7 9]] |
В приведенном выше примере мы видим, что мы создали DataFrame с именем data, который содержит данные о годе, месяце и дне. Затем мы преобразовали эти данные в numpy с помощью to_numpy() и получили желаемый результат в виде массива.
Вы можете проверить тип данных массива, используя функцию type().
|
1 2 3 4 5 6 7 8 9 |
import pandas as pd data = pd.DataFrame({'year': [2015, 2016, 2017, 2018, 2019, 2020], 'month': [2, 3, 4, 5, 6, 7], 'day': [4, 5, 6, 7, 8, 9]}) print('The data type of data is: ', type(data)) data_numpy = data.to_numpy() print('The data type of data_numpy is: ', type(data_numpy)) |
Выход:
|
1 2 |
The data type of data is: <class 'pandas.core.frame.DataFrame'> The data type of data_numpy is: <class 'numpy.ndarray'> |
Вы можете видеть, что оба имеют разные типы данных, и функция to_numpy() успешно преобразует DataFrame в массив Numpy.
Пример 2
Напишем программу, показывающую работу DataFrame.to_numpy() с разнородными данными.
См. следующий код.
|
1 2 3 4 5 6 |
import pandas as pd data = pd.DataFrame({'science marks': [84, 77, 66, 44, 37, 89], 'maths marks': [62.5, 73.6, 84.3, 67.5, 56.9, 87.5]}) data_innumpy = data.to_numpy() print(data_innumpy) |
Выход:
|
1 2 3 4 5 6 |
[[84. 62.5] [77. 73.6] [66. 84.3] [44. 67.5] [37. 56.9] [89. 87.5]] |
Здесь, в приведенном выше коде, мы видим, что мы создали DataFrame, который содержит отметки о науке и математике. Следует отметить, что оценки науки представлены в целочисленном формате, а оценки математики представлены в десятичном формате. Следовательно, при преобразовании его в массив numpy он принимает значение самого низкого используемого общего типа.
Всегда помните, что при работе с большим количеством данных вы должны сначала очистить данные, чтобы получить высокую точность.
Импорт данных CSV и преобразование их в массив numpy
Чтобы импортировать данные CSV, вы можете использовать метод read_csv(). Он автоматически преобразует данные CSV в DataFrame.
Я импортирую файл show_data.csv. Вы можете назвать его как угодно для вашего удобства. Я назвал его файлом show_data.csv.
В этом примере мы получим данные столбца Title первых пяти строк.
|
1 2 3 4 5 6 |
import pandas as pd data = pd.read_csv('shows_data.csv') data.dropna(inplace=True) shows = pd.DataFrame(data['Title'].head()) print(shows.to_numpy()) |
Выход:
|
1 2 3 4 5 |
[['Breaking Bad'] ['Stranger Things'] ['Money Heist'] ['Sherlock'] ['Better Call Saul']] |
Вы можете видеть, что мы получили только название первых пяти шоу в массиве numpy.
Мы также можем передать аргумент dtype в функцию to_numpy().
|
1 2 3 4 5 6 |
import pandas as pd data = pd.read_csv('shows_data.csv') data.dropna(inplace=True) shows = pd.DataFrame(data['Netflix'].head()) print(shows.to_numpy(dtype='float32')) |
Выход:
|
1 2 3 4 5 |
[[1.] [1.] [1.] [1.] [1.]] |
Выходной массив имеет тип данных float.
Итак, для преобразования Pandas DataFrame в массив Numpy полезна функция массива to_numpy().
