【发布时间】:2019-12-19 11:51:19
【问题描述】:
为什么会出现这个错误?
ufunc 'add' 不包含签名匹配类型 dtype 的循环
代码:
cols = df.columns.tolist()
cols = np.array (cols)
cols2 = cols[:17] + cols[19:22] + cols [18]
【问题讨论】:
为什么会出现这个错误?
ufunc 'add' 不包含签名匹配类型 dtype 的循环
代码:
cols = df.columns.tolist()
cols = np.array (cols)
cols2 = cols[:17] + cols[19:22] + cols [18]
【问题讨论】:
有两个问题
+,在numpy 数组上使用时,被解释为数字加法,而不是列表连接,因此匹配dtype 的错误。而不是加法,你应该使用np.concatenate
cols[18] 不是数组——它是数组的一个元素。您不能添加数字和数组(如果您想要将元素附加到数组中)cols2 = np.concatenate([cols[:17], cols[19:22], [cols[18]]])
或者您可以将 cols 保留为列表(不将其转换为 numpy 数组并使用列表添加):
cols = df.columns.tolist()
cols2 = cols[:17] + cols[19:22] + [cols[18]]
【讨论】:
cols = df.columns.tolist(); cols2 = cols[:11] + cols[15:21] + cols[21:22](但不要将cols转换为np.array)