python里怎么计算两个向量的曼哈顿距离?
2个回答
曼哈顿距离其实就是L1距离,$x=(x_1,\cdots, x_n)$,$y=(y_1,\cdots,y_n)$,曼哈顿距离就是
$$\sum_{i=1}^n|x_i-y_i|$$
定义清楚了,代码就很好写了
import numpy as np
x = np.random.random(10)
y = np.random.random(10)
# 计算曼哈顿距离
d1 = np.sum(np.abs(x - y))
numpy有自带的范数公式,可以用计算对应范数的距离
from numpy import array
from numpy.linalg import norm
x = array([1, 2, 3, 4, 5])
y = array([2, 0, 3, 5, 1])
# 曼哈顿距离对应着L1范数
d1 = norm(x - y, ord=1))
# 欧式距离对应着L2范数
d2 = norm(x - y, ord=2))