我有一个大的[numpy]向量X和一个比较函数f(x,y)
。我需要找到X的所有成对元素,对于它们f(X[I],X[j])<T
的某个阈值T。这很好:
good_inds = {}
for i in range(0,len(X)):
for j in range(x+1,len(X)):
score = f(X[i],X[j])
if score<T:
good_inds[x,y] = score
实际上,这会构建一个字典,该字典表示稀疏矩阵。问题是它相当慢,我希望并行化此过程。请指教。
所以。显然,SciPy已经足够好了。
full_dist_mat = spatial.distance.squareform( spatial.distance.pdist(vects2, metric='cosine'))
已经优化。在Macbook Pro上的jupyter实验室中,运行2000个向量需要1.3秒。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句