numpy/scipy 中 N 点与参考之间的高效距离计算

2024-01-06

我刚刚开始使用 scipy/numpy。我有一个100000*3的数组,每一行都是一个坐标,以及一个1*3的中心点。我想计算数组中每一行到中心的距离并将它们存储在另一个数组中。最有效的方法是什么?


我会看一下scipy.spatial.distance.cdist:

http://docs.scipy.org/doc/scipy/reference/ generated/scipy.spatial.distance.cdist.html http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.cdist.html

import numpy as np
import scipy

a = np.random.normal(size=(10,3))
b = np.random.normal(size=(1,3))

dist = scipy.spatial.distance.cdist(a,b) # pick the appropriate distance metric 

dist对于默认的距离度量相当于:

np.sqrt(np.sum((a-b)**2,axis=1))  

虽然cdist对于大型数组来说效率更高(在我的机器上解决你的大小问题,cdist速度快了约 35 倍)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy/scipy 中 N 点与参考之间的高效距离计算 的相关文章

随机推荐