我正在尝试按照本教程使用 scipy 进行 K- 表示聚类:http://glowingpython.blogspot.no/2012/04/k-means-clustering-with-scipy.html
问题在于他使用 vstack 来制作任意数据点,进而返回一个 ndarray。我有两个列表:长度和宽度。如何将它们组合到一个 ndarray 中,以便我可以使用他的例子?
lengths = [300.0, 300.0, 300.0, 300.0, 303.0, 300.0]
breadths = [9.6, 9.7, 9.8, 10.3, 6.8, 9.4]
Numpy的vstack
只会接受这些作为列表:
In [23]: np.vstack((lengths, breadths))
Out[23]:
array([[ 300. , 300. , 300. , 300. , 303. , 300. ],
[ 9.6, 9.7, 9.8, 10.3, 6.8, 9.4]])
如果要将其显式转换为数组,可以执行以下操作:
In [24]: np.array(lengths)
Out[24]: array([ 300., 300., 300., 300., 303., 300.])
但是,我认为在这个例子的情况下,kmeans
期望观察结果是不同的行,所以你需要转置:np.vstack((lengths, breadths)).T