我在用python计算欧几里德距离。我想学习如何在不使用for循环的情况下计算它。这是我的密码
import numpy as np
import random
A = np.random.randint(5, size=(10, 5))
B = [1, 3, 5, 2, 4]
for i in range(10):
dist = np.linalg.norm(A[i]-B)
print("Distances: ", dist)
我是否可以使用高级索引或任何其他技术来计算距离而不使用for循环?谢谢。你知道吗
Tags:
方法#1:最直接的方法是使用
np.linalg.norm
参数并利用axis
参数broadcasting
-方法#2:与
einsum
-方法#3:使用
(a-b)^2 = a^2 + b^2 - 2ab
公式利用matrix-multiplication
与np.dot
和np.inner
-可以显式计算Frobenius Norm:
这是^{} 的默认值。下面是一个演示:
相关问题 更多 >
编程相关推荐