Чтобы преобразовать DataFrame в массив NumPy без индекса в Python, вы можете использовать несколько методов: .values для прямого доступа к базовому массиву, to_numpy() для гибкого подхода с контролем типов, iloc[] для выборочного преобразования столбцов, сглаживания DataFrame с .ravel() для одномерного массива или понимания списка.
Функция .values
Метод .values в Python напрямую обращается к базовому массиву NumPy DataFrame. Это быстрый и простой способ получить представление массива, но он не позволяет контролировать преобразования типов данных.
Вот код для использования .values для преобразования кадра данных в массив NumPy без индекса в Python:
import pandas as pd df_cities = pd.DataFrame({ 'City': ['New York', 'Los Angeles', 'Chicago'], 'Population': [8419000, 3971000, 2705000] }) array_cities = df_cities['Population'].values print("Converted NumPy Array:\n", array_cities) print("Type of the converted array:", type(array_cities))
Выход:
Converted NumPy Array: [8419000 3971000 2705000] Type of the converted array:
Ниже приведен скриншот после реализации кода в редакторе Pycharm.
Функция to_numpy()
Функция to_numpy() позволяет нам указывать типы данных и контролировать обработку значений NA, что делает ее идеальной для более сложных структур данных.
Вот как мы можем использовать функцию to_numpy() для преобразования кадра данных в массив NumPy без индекса в Python:
import pandas as pd df_gdp = pd.DataFrame({ 'State': ['California', 'Texas', 'New York'], 'GDP': [3.1, 1.9, 1.7] }) array_gdp = df_gdp['GDP'].to_numpy() print("Converted NumPy Array:\n", array_gdp) print("Type of the converted array:", type(array_gdp))
Выход:
Converted NumPy Array: [3.1 1.9 1.7] Type of the converted array:
После выполнения кода в Pycharm результат можно увидеть на снимке экрана ниже.
Метод iloc[]
Метод iloc[] полезен для выбора определенных строк и столбцов перед преобразованием в массив NumPy в Python.
Вот код для преобразования кадра данных в массив NumPy без индекса в Python с использованием функции iloc[]:
import pandas as pd df_universities = pd.DataFrame({ 'University': ['MIT', 'Stanford', 'Harvard'], 'Ranking': [1, 2, 3], 'Founded': [1861, 1885, 1636] }) array_universities = df_universities.iloc[:, 0:].values print("Converted NumPy Array:\n", array_universities) print("Type of the converted array:", type(array_universities))
Выход:
Converted NumPy Array: [['MIT' 1 1861] ['Stanford' 2 1885] ['Harvard' 3 1636]] Type of the converted array:
Ниже приведен снимок экрана, показывающий результат реализации кода в редакторе Pycharm.
Функция ravel()
Когда нам нужно преобразовать DataFrame в одномерный массив, этот метод объединяет .values с .ravel(), чтобы сгладить DataFrame, в результате чего получается одномерный массив NumPy.
import pandas as pd df_capitals = pd.DataFrame({ 'State': ['California', 'Texas', 'Florida'], 'Capital': ['Sacramento', 'Austin', 'Tallahassee'], 'Population': [513625, 964254, 195528] }) array_capitals = df_capitals.values.ravel() print("Converted NumPy Array:\n", array_capitals) print("Type of the converted array:", type(array_capitals))
Выход:
Converted NumPy Array: ['California' 'Sacramento' 513625 'Texas' 'Austin' 964254 'Florida' 'Tallahassee' 195528] Type of the converted array:
После реализации кода в редакторе Pycharm был предоставлен снимок экрана ниже.
С использованием понимания списка
Чтобы преобразовать фрейм данных в массив NumPy без индекса в Python, мы можем перебрать строки DataFrame с пониманием списка и создать из него список, а затем преобразовать его с помощью функции np.array().
import pandas as pd import numpy as np df_landmarks = pd.DataFrame({ 'Landmark': ['Statue of Liberty', 'Golden Gate Bridge', 'Grand Canyon'], 'Location': ['New York', 'California', 'Arizona'] }) array_landmarks = np.array([row for row in df_landmarks.values]) print("Converted NumPy Array:\n", array_landmarks) print("Type of the converted array:", type(array_landmarks))
Выход:
Converted NumPy Array: [['Statue of Liberty' 'New York'] ['Golden Gate Bridge' 'California'] ['Grand Canyon' 'Arizona']] Type of the converted array:
Ниже приведен снимок экрана, демонстрирующий выходные данные, снятые после выполнения кода в редакторе Pycharm.