pandas.DataFrame如何转换为numpy.ndarray

时间:2020-03-26 09:36:16

标签: python pandas numpy linear-regression

我是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 个答案:

答案 0 :(得分:1)

  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慢。 DataFrame是二维的,具有用于行的索引和用于列的标签,而NumPy ndarray可以具有任意数量的维,但没有任何标签。