按照本教程,我正在尝试使用scipy进行K-means聚类: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]
答案 0 :(得分:1)
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