Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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 TypeError:/:';列表';和';长';_Python_Numpy - Fatal编程技术网

Python TypeError:/:';列表';和';长';

Python TypeError:/:';列表';和';长';,python,numpy,Python,Numpy,我将数据分为两类,然后我将计算平均向量,但我得到以下错误。但是,当我将[3,7]更改为[3,1]时,问题将得到解决!!!有人能帮我吗?先谢谢你 Traceback (most recent call last): File "ao.py", line 36, in <module> (r,d,u)=update(clusters) File "ao.py", line 30, in update c=np.mean(d, axis=0) File "E:\

我将数据分为两类,然后我将计算平均向量,但我得到以下错误。但是,当我将[3,7]更改为[3,1]时,问题将得到解决!!!有人能帮我吗?先谢谢你

Traceback (most recent call last):
  File "ao.py", line 36, in <module>
    (r,d,u)=update(clusters)
  File "ao.py", line 30, in update
    c=np.mean(d, axis=0)
  File "E:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 2716, in
mean
    out=out, keepdims=keepdims)
  File "E:\Python27\lib\site-packages\numpy\core\_methods.py", line 69, in _mean

    ret = ret / rcount
TypeError: unsupported operand type(s) for /: 'list' and 'long'

np.mean
可用于表示为列表的数组,例如:

np.mean([[1],[4],[6]])
但是,它不适用于形状不规则的阵列,例如:

np.mean([[1, 2],[4],[6]])
这就是问题所在,因为变量
d
内部函数
a
看起来像:

[[array([ 5. ,  7. ]), array([ 3.,  7.])],
 [array([ 3.5,  5. ])                   ],
 [array([ 3.5,  4.5])                   ],
 [array([ 5. ,  8. ])                   ]]

我认为您需要找到更好的方法来组织数据。

正如错误所说,
ret
rcount
是一个列表。
numpy.mean
需要一个数组。你给了它一个列表。好吧,但是为什么当我在X中将[3,7]更改为[3,1]时,我没有得到任何错误,并且它计算了平均值。我认为问题在于列表
[3,7]
会导致一个空的
d
列表。你可以检查一下吗?这个问题与变量d有关在计算平均向量之前,r&d是这样的:r:[[array([2,3.]),[array([1.5,2.]),[array([3,4.]),[array([1,1.]),[array([5,1.])]d:[[array([5,7.]),[array([3,7.]),[array([3.5,5.]),[array([3.5,4.5]),[array([3.5,4.5]),[array([5]),[5]),[8])]----程序正在计算np.mean(r,axi=0),无误。因此,问题与d@user3616059:是的,这就是我要说的:数组
d
不是矩形的,这会导致错误。
[[array([ 5. ,  7. ]), array([ 3.,  7.])],
 [array([ 3.5,  5. ])                   ],
 [array([ 3.5,  4.5])                   ],
 [array([ 5. ,  8. ])                   ]]