制作两个列表python的ndarray

时间:2015-04-13 22:10:44

标签: python numpy multidimensional-array

按照本教程,我正在尝试使用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]

1 个答案:

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