Python 两个向量之间的曼哈顿距离
我需要计算两个向量之间的曼哈顿距离 我找到了这个密码 但在另一份文档中,我找到了曼哈顿的代码 因此,这方面的代码是:Python 两个向量之间的曼哈顿距离,python,distance,heuristics,Python,Distance,Heuristics,我需要计算两个向量之间的曼哈顿距离 我找到了这个密码 但在另一份文档中,我找到了曼哈顿的代码 因此,这方面的代码是: def manhattan_distance(instance1, instance2): n = len(instance1)-1 sum = 0 # for each point, finding distance # to rest of the point for i in range(n): sum += ab
def manhattan_distance(instance1, instance2):
n = len(instance1)-1
sum = 0
# for each point, finding distance
# to rest of the point
for i in range(n):
sum += abs(float(instance1[i]) - float(instance2[i]))
return sum
曼哈顿距离的算法是什么在参考公式中,有n个点,每个点有2个坐标,计算一个向量到其他向量的距离。所以除了符号,两个公式都是一样的。两个向量之间的曼哈顿距离是它们坐标差的绝对值之和。记住它的一个简单方法是,向量到自身的距离必须为0。这里有一个计算曼哈顿距离的示例 [1]中的
:%粘贴
将numpy作为np导入
def曼哈顿距离(a,b):
返回np.abs(a-b).sum()
a=np.array([1,2])
b=np.array([-1,4])
打印(曼哈顿距离(a,b))
##--结束粘贴的文本--
4.
如果处理的向量是字符串
[1]中的:%粘贴
将numpy作为np导入
def曼哈顿距离(a,b):
返回np.abs(a-b).sum()
a=['1','2']
b=['-1',4']
打印(曼哈顿距离(np.array(a,dtype=float),np.array(b,dtype=float)))
##--结束粘贴的文本--
4
还有和ord=1
。为什么n=len(instance1)-1
??在我看来,没有理由从总和中省略最后一个分量!֍无论如何,你应该为x1写manhattan=sum(abs(float(x2)-float(x1)),x2在zip中(instance1,instance2))
…除了OP似乎在处理strings@gboffi更新帖子,展示如何处理字符串数组
def manhattan_distance(instance1, instance2):
n = len(instance1)-1
sum = 0
# for each point, finding distance
# to rest of the point
for i in range(n):
sum += abs(float(instance1[i]) - float(instance2[i]))
return sum