我有一个一维数值数据集(但我的问题也适用于n维数值数据集),我想要聚类,我已经知道了聚类中心的值。所以我只想将每个数据点映射到其关联的聚类中心(最接近数据点的聚类中心)。
我可以编写一个ad hoc函数,但我更喜欢使用优化的Python科学库来处理pandas.Series或numpy.arrays,因为我的数据集非常大(数亿个数据点)
我该怎么做?
谢谢!
答案 0 :(得分:3)
您正在寻找scipy vq
function。
第一个参数是要聚类的数据,第二个参数是聚类坐标。返回值的第一个元素是每个集群的索引(标签),这是您想要的:
>>> vq( array([0,5,5]), array([1,2,3]) )
(array([0, 2, 2]), array([ 1., 2., 2.]))