使用Python在给定的集群中心中集群数据

时间:2014-08-14 09:53:46

标签: python pandas numpy

我有一个一维数值数据集(但我的问题也适用于n维数值数据集),我想要聚类,我已经知道了聚类中心的值。所以我只想将每个数据点映射到其关联的聚类中心(最接近数据点的聚类中心)。

我可以编写一个ad hoc函数,但我更喜欢使用优化的Python科学库来处理pandas.Series或numpy.arrays,因为我的数据集非常大(数亿个数据点)

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:3)

您正在寻找scipy vq function

第一个参数是要聚类的数据,第二个参数是聚类坐标。返回值的第一个元素是每个集群的索引(标签),这是您想要的:

>>> vq( array([0,5,5]), array([1,2,3]) )
(array([0, 2, 2]), array([ 1.,  2.,  2.]))