擅长:python、mysql、java
<p>注意,如果<code>x</code>只表示索引,那么数据点实际上是一维的。可以使用Scipy的<code>cluster.vq</code>模块对点进行聚类,该模块实现了<em>k</em>-means算法。</p>
<pre><code>>>> import numpy as np
>>> from scipy.cluster.vq import kmeans, vq
>>> y = np.array([1,2,3,60,70,80,100,220,230,250])
>>> codebook, _ = kmeans(y, 3) # three clusters
>>> cluster_indices, _ = vq(y, codebook)
>>> cluster_indices
array([1, 1, 1, 0, 0, 0, 0, 2, 2, 2])
</code></pre>
<p>结果表明:前三个点形成簇<code>1</code>(任意标记),后四个点形成簇<code>0</code>,最后三个点形成簇<code>2</code>。根据索引对原始点进行分组留给读者作为练习。</p>
<p>有关Python中的更多集群算法,请查看<a href="http://scikit-learn.org/stable/modules/clustering.html">scikit-learn</a>。</p>