python - np.concatenate 错误...ValueError:所有输入数组必须具有相同的维数
问题描述
在我尝试将标题加载到数据框之前,我的代码字很好。这似乎是 np.concatenate 的问题。
我尝试转置数组以查看它是否方向不正确。
print("\n")
print("Prediction")
Y = vectorizer.transform(df['plot_keywords'].astype('U'))
prediction = model.predict(Y)
df_tmp = np.concatenate([df, pd.DataFrame(np.transpose(prediction.astype(np.int32)), columns=['cluster_plot_keywords'])], axis=1)
#!!!this is where the error is, caused by the np.concatenate!!!
df = pd.DataFrame(df_tmp, columns=[np.concatenate([df.columns.values,'cluster_plot_keywords'])])
预期的结果是我可以编写 df 并打印数据框。
在为数据框创建标头时收到以下错误:
ValueError Traceback (most recent call last)
<ipython-input-12-42a155bf519f> in <module>
7
8 #!!!this is where the error is, caused by the np.concatenate!!!
----> 9 df = pd.DataFrame(df_tmp, columns=[np.concatenate([df.columns.values,'cluster_plot_keywords'])])
ValueError: all the input arrays must have same number of dimensions
如果我打印 df_tmp,它会正确输出数组,但不会作为数据框输出,这就是我尝试在列中加载的原因:
array([['Color', 'James Cameron', 723.0, ..., 1.78, 33000, 0],
['Color', 'Gore Verbinski', 302.0, ..., 2.35, 0, 0],
['Color', 'Sam Mendes', 602.0, ..., 2.35, 85000, 0],
...,
['Color', 'Benjamin Roberds', 13.0, ..., nan, 16, 2],
['Color', 'Daniel Hsia', 14.0, ..., 2.35, 660, 2],
['Color', 'Jon Gunn', 43.0, ..., 1.85, 456, 1]], dtype=object)
解决方案
在
np.concatenate([df.columns.values,'cluster_plot_keywords'])
您正在尝试将一个类似数组的对象 ( df.columns.values
) 与一个字符串连接起来,'cluster_plot_keywords'
(它被“解释”为 0 维数组)。这似乎是一个错字;也许你的意思是
np.concatenate([df.columns.values, prediction['cluster_plot_keywords']])
或者
np.concatenate([df.columns.values, df['cluster_plot_keywords']])
?
但是如果不知道更多关于究竟'cluster_plot_keywords'
是什么(以及df
,prediction
以及它们各自的内容),我无法确定。
推荐阅读
- r - 您可以在 rmarkdown 或 bookdown 中将 natbib 的引用样式更改为数字吗?
- java - Android Studio:应用程序未保存到数据库/从数据库读取
- angularjs - 使用 AngularJS 动态加载 Google Maps API
- google-sheets - 表格:数组结果未展开
- javascript - concat1D 中的错误:张量 [23] 的等级必须与其余的等级相同
- c# - 获取 TKey 和 TValue
- php - 使用外键获取数据时的问题
- python - Python:如何从列表中获取第 n 个元素,其中 n 来自列表
- javascript - 返回布尔值的更好方法
- webpack - 使用 Webpack 4 可以访问我的 javascript 代码中的 hash 或 contenthash,而不是 html?