Pandas Series.as_matrix()无法将一系列nd数组正确转换为单个nd数组

时间:2018-01-31 16:41:19

标签: python pandas numpy scikit-learn

我有一个pandas数据框,其中一列标记为“feature_vector”,其中包含一个带有一堆数字的1d numpy数组。现在,我需要在scikit学习模型中使用这些数据,所以我需要它作为单个numpy数组。所以我自然而然地调用DataFrame [“feature_vector”]。as_matrix()从正确的系列中获取numpy数组。唯一的问题是,as_matrix()函数将返回一个ndy数组,其中每个元素是一个包含每个向量的1d numpy数组。当这被传递给sklearn模型的.fit()函数时,它会抛出一个错误。我需要的是一个2d numpy数组而不是1d数组的1d数组。我写了这个工作,它使用了大概不必要的内存和计算时间:

x = dataframe["feature_vector"].as_matrix()
#x is a 1d array of 1d arrays.
l = []
for e in x:
    l.append(e)
x = np.array(l)
#x is now a single 2d array.

这是pandas .as_matrix()中的错误吗?有没有更好的解决方法,不需要我改变原始数据帧的结构?

0 个答案:

没有答案