Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ufunc&x27;添加';未包含签名类型与dtype匹配的循环_Python_Arrays - Fatal编程技术网

Python ufunc&x27;添加';未包含签名类型与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]不是数组——它是数组的一个元素。不能添加数字

为什么会出现这个错误

ufunc“add”不包含签名类型与dtype匹配的循环

守则:

cols = df.columns.tolist()
cols = np.array (cols)
cols2 = cols[:17] + cols[19:22] + cols [18]
谢谢

有两个问题

  • 运算符
    +
    numpy
    数组上使用时,会被解释为数字加法,而不是列表串联,从而导致有关匹配数据类型的错误。您应该使用
    np.concatenate
  • cols[18]
    不是数组——它是数组的一个元素。不能添加数字和数组(如果要将元素附加到数组中)
或者,您可以将COL保留为列表(不将其转换为
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]]