【发布时间】:2016-11-05 23:24:33
【问题描述】:
我正在寻找优化这种循环欧几里得距离计算的智能方法。此计算正在寻找与所有其他向量的平均距离。
因为我的向量数组真的很大:eucl_dist = euclidean_distances(eigen_vs_cleaned) 我逐行运行一个循环。
目前典型的 eigen_vs_cleaned 形状至少为 (300000,1000),我必须进一步提高。 (如 2000000,10000)
有什么更聪明的方法吗?
eucl_dist_meaned = np.zeros(eigen_vs_cleaned.shape[0],dtype=float)
from sklearn.metrics.pairwise import euclidean_distances
for z in range(eigen_vs_cleaned.shape[0]):
if z%10000==0:
print(z)
eucl_dist_temp = euclidean_distances(eigen_vs_cleaned[z].reshape(1, -1), eigen_vs_cleaned)
eucl_dist_meaned[z] = eucl_dist_temp.mean(axis=1)
【问题讨论】:
标签: python numpy scipy scikit-learn