Как pandas .DataFrame был преобразован в numpy .ndarray - PullRequest
0 голосов
/ 26 марта 2020

Я новичок в ML, pandas и numpy.

Я просматривал файл jupyter программы линейной регрессии. Там я увидел dataset = pd.read_csv('C:\First ML Projects/winequality.csv').

Когда я сделал type(dataset), я получил pandas.core.frame.DataFrame. Имеет смысл, потому что набор данных был создан с использованием метода pd

Затем был этот код,

X = dataset[['fixed acidity', 'volatile acidity', 'citric acid', 'residual sugar', 'chlorides', 'free sulfur dioxide', 'total sulfur dioxide', 'density', 'pH', 'sulphates','alcohol']].values

Когда я сделал type(X), я получил numpy.ndarray.

Первый вопрос: почему X был не в формате pandas.DataFrame?

Второй: Когда не было упоминания о numpy или np, как он конвертировался numpy.ndarray?

В-третьих: В чем разница между pandas .DataFrame и numpy .ndarray, поскольку оба хранят данные?

1 Ответ

1 голос
/ 26 марта 2020
  1. X = dataset[['fixed acidity', ..., 'alcohol']] означает, что DataFrame индексируется списком имен столбцов. Результатом остается DataFrame, содержащий только выбранные столбцы. Но затем метод pd.df.values ​​() применяется к этому DataFrame. Этот метод возвращает базовый массив NumPy.
  2. Pandas построен поверх NumPy, поэтому, если у вас есть числовые данные в DataFrame, они будут храниться в массивах NumPy под капотом. , Опять же, метод pd.df.values ​​() делает это явным здесь.
  3. NumPy массивы оптимизированы для числовых данных, тогда как Pandas работает со всеми видами данных , У Pandas есть больше способов извлечения данных в DataFrame, но обычно он медленнее, чем чистый NumPy. A DataFrame является двумерным с индексом для строк и меток для столбцов, тогда как NumPy ndarray может иметь любое количество измерений, но не имеет никаких меток.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...