Python ufunc&x27;添加';未包含签名类型与dtype匹配的循环
为什么会出现这个错误 ufunc“add”不包含签名类型与dtype匹配的循环 守则:Python ufunc&x27;添加';未包含签名类型与dtype匹配的循环,python,arrays,Python,Arrays,为什么会出现这个错误 ufunc“add”不包含签名类型与dtype匹配的循环 守则: cols = df.columns.tolist() cols = np.array (cols) cols2 = cols[:17] + cols[19:22] + cols [18] 谢谢 有两个问题 运算符+在numpy数组上使用时,会被解释为数字加法,而不是列表串联,从而导致有关匹配数据类型的错误。您应该使用np.concatenate cols[18]不是数组——它是数组的一个元素。不能添加数字
cols = df.columns.tolist()
cols = np.array (cols)
cols2 = cols[:17] + cols[19:22] + cols [18]
谢谢 有两个问题
- 运算符
在+
数组上使用时,会被解释为数字加法,而不是列表串联,从而导致有关匹配数据类型的错误。您应该使用numpy
np.concatenate
不是数组——它是数组的一个元素。不能添加数字和数组(如果要将元素附加到数组中)cols[18]
numpy
数组并使用列表添加):
错误是因为cols是一列23行。那么,我如何用列-0-10+15-20+20-21包装一个新的向量呢?正如我所说,您可以使用列表添加,也可以使用numpy连接。我认为添加列表更好
cols=df.columns.tolist();cols2=cols[:11]+cols[15:21]+cols[21:22]
(但不要将cols
转换为np.array
)
cols2 = np.concatenate([cols[:17], cols[19:22], [cols[18]]])
cols = df.columns.tolist()
cols2 = cols[:17] + cols[19:22] + [cols[18]]