在Python中整理点的数组

1 投票
2 回答
2348 浏览
提问于 2025-04-16 20:53

我需要把3个三维点作为一个矩阵输入到这个函数里,所以我创建了一个这样的元组:

initPoints = ([10,20,30],[5,15,25],[100,150,200])

但是我遇到了以下错误:

AttributeError: 'tuple' object has no attribute 'shape'

当我使用列表的时候也出现了同样的问题。有没有什么想法?什么是'形状'?我需要其他类型的数组吗?我该怎么做呢?谢谢!

补充一下 - 我使用的函数是 scipy.cluster.vq.kmeans2,参数 minit='matrix'

2 个回答

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)

我们需要更多的信息(比如你把这个传给了什么)才能确定。

3

根据scipy.cluster.vq.kmeans2的文档,当你使用参数minit='matrix'时,k应该是一个numpy.ndarray类型的数组。所以你需要这样做:

initPoints = numpy.array([[10,20,30],[5,15,25],[100,150,200]])

撰写回答