擅长:python、mysql、java
<p>执行np.min时,它返回2d数组的最小值。
您需要每个质心的最小值</p>
<pre><code>shortest_distance_to_centroid = [min(x) for x in cdist(centroids,nodes)]
</code></pre>
<p>要获得关联索引,一种方法是获取对应值的索引。另一种方法是编写一个自定义的min()函数,该函数也会返回索引(因此只能解析列表一次)</p>
<pre><code>[(list(x).index(min(x)), min(x)) for x in cdist(centroids,nodes)] # the cast list() is needed because numpy array don't have index methods
</code></pre>
<p>具有自定义功能的解决方案:</p>
<pre><code>def my_min(x):
current_min = x[0]
current_index = [1]
for i, v in enumerate(x[1:]):
if v < current_min:
current_min = v
current_index = i + 1
return (current_index, current_min)
[my_min(x) for x in cdist(centroids,nodes)]
</code></pre>