在python中组织一系列点

时间:2011-07-05 17:45:48

标签: python arrays scipy

我需要在这个函数中输入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'

2 个答案:

答案 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]])