python 欧氏距离_如何用NumPy计算欧氏距离?
對于任何對同時計算多個距離感興趣的人,我做了一些比較完成圖(我的一個小項目)。結果證明a_min_b?=?a?-?b
numpy.sqrt(numpy.einsum('ij,ij->i',?a_min_b,?a_min_b))
中的行的距離。a和b最快的。這實際上也適用于一行!
再現(xiàn)情節(jié)的代碼:import?matplotlibimport?numpyimport?perfplotfrom?scipy.spatial?import?distancedef?linalg_norm(data):
a,?b?=?data????return?numpy.linalg.norm(a-b,?axis=1)def?sqrt_sum(data):
a,?b?=?data????return?numpy.sqrt(numpy.sum((a-b)**2,?axis=1))def?scipy_distance(data):
a,?b?=?data????return?list(map(distance.euclidean,?a,?b))def?mpl_dist(data):
a,?b?=?data????return?list(map(matplotlib.mlab.dist,?a,?b))def?sqrt_einsum(data):
a,?b?=?data
a_min_b?=?a?-?b????return?numpy.sqrt(numpy.einsum('ij,ij->i',?a_min_b,?a_min_b))perfplot.show(
setup=lambda?n:?numpy.random.rand(2,?n,?3),
n_range=[2**k?for?k?in?range(20)],
kernels=[linalg_norm,?scipy_distance,?mpl_dist,?sqrt_sum,?sqrt_einsum],
logx=True,
logy=True,
xlabel='len(x),?len(y)'
)
總結
以上是生活随笔為你收集整理的python 欧氏距离_如何用NumPy计算欧氏距离?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zs040蓝牙模块使用方法_三菱CCLI
- 下一篇: maven安装_如何从官网下载Maven