【问题标题】:How to create numpy array from dataframe?如何从数据框创建 numpy 数组?
【发布时间】:2020-07-31 07:46:17
【问题描述】:

我正在使用包含 4 列的 Pandas DataFrame:“TV”、“Radio”、“Newspaper”和“Sales”。我需要创建两个NumPy 数组:X 包含前 3 列,y 包含“销售”列。 我发现有两种方法可以从Pandas DataFrame 创建NumPy 数组:

import numpy as np
X = np.array(adver_data.iloc[:,0:3].values)
y = np.array(adver_data["Sales"].values)

和:

import numpy as np
X = adver_data[['TV', 'Radio', 'Newspaper']].values
y = adver_data[['Sales']].values

问题是,即使这两种方式实际上创建了一个NumPy 数组,但我的代码为这两种方式给出了不同的结果,我不知道为什么,因为我看不到这两种方式的数组是如何的不同。

有什么区别?

【问题讨论】:

  • 如果他们给你相同的 numpy 数组,那么问题可能出在其他代码中。
  • 注意:pandas documentation应该使用.to_numpy()而不是.values
  • 提供一个样本数据集,您的输出和预期输出将有助于更好地理解您的问题并更轻松地回答您的问题:)

标签: python arrays numpy dataframe


【解决方案1】:

假设您有“n”行数据。

代码:

y = np.array(adver_data["Sales"].values)

y 的形状设为(n,),即一维数组

而代码:

y = adver_data[['Sales']].values

y 的形状设为(n, 1),即二维数组

所以,你得到了不同的结果。

【讨论】:

  • 确实如此,但你没有坚持根本原因。在第一个代码中,您转换一个提供一维数组的 Series,在第二个代码中,您转换一个提供二维数组的 DataFrame。
猜你喜欢
  • 2021-06-29
  • 2018-11-04
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
相关资源
最近更新 更多