我需要在这个函数中输入3个3D点作为矩阵;所以我做了一个像这样的元组:
initPoints = ([10,20,30],[5,15,25],[100,150,200])
但我收到以下错误:
AttributeError: 'tuple' object has no attribute 'shape'
当我使用列表时发生了同样的事情。有任何想法吗?什么是'形状'?我还需要其他类型的阵列吗?我怎样才能做到这一点? 感谢
编辑 - 我正在使用的函数是scipy.cluster.vq.kmeans2 with minit ='matrix'
答案 0 :(得分:4)
也许这个函数期待一个numpy数组或矩阵而不是一个列表元组?
http://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.html
>>> import numpy
>>> a = numpy.array(((1,2,3),(4,5,6)))
>>> a.shape
(2, 3)
我们需要更多信息(比如你传递的信息),以确定。
答案 1 :(得分:3)
正如scipy.cluster.vq.kmeans2
的文档所示,当您传入k
时,numpy.ndarray
应为minit='matrix'
。所以这样做:
initPoints = numpy.array([[10,20,30],[5,15,25],[100,150,200]])