【发布时间】:2013-07-22 07:49:03
【问题描述】:
我正在使用 Numpy 在 Python 中编写 K-Means 算法。到所有质心的距离部分非常优化(使用质心矩阵而不是单独计算每个质心),但我正在努力计算新质心部分。我正在从数据集中复制每个质心的数据来计算平均值。
我认为不复制会更快。如何在 Python/Numpy 中执行此操作?
代码sn-p:
for c_i in range(k):
sub_data = np.zeros([n_per_c[c_i],data_width])
sub_data_i = 0
for data_i in range(data_length):
if label[data_i] == c_i:
sub_data[sub_data_i,:] = data[data_i,:]
sub_data_i += 1
c[c_i] = np.mean(sub_data, axis=0)
c 是我拥有的质心列表,data 是整个数据集,label 是带有类标签的列表。
【问题讨论】: