📜  Python|计算街区距离

📅  最后修改于: 2022-05-13 01:55:31.761000             🧑  作者: Mango

Python|计算街区距离

城市街区距离通常在配对对象的 2 坐标之间计算。它是 2 坐标之间绝对差的总和。 2 点abk维城市街区距离使用以下公式进行数学计算:


在本文中,针对这个问题解释了两种解决方案——一种使用Python代码,另一种使用预定义的方法。

例子:

代码:使用上述公式计算距离的Python临时代码。

import numpy as np
  
def cityblock_distance(A, B):
  
    result = np.sum([abs(a - b) for (a, b) in zip(A, B)])
    return result
  
if __name__== "__main__":
  
    array1 = [1, 2, 13, 5]
    array2 = [1, 27, 3, 4]
  
    result = cityblock_distance(array1, array2)
  
    print("The CityBlock distance between 2 arrays is:", result)

输出:

The CityBlock distance between 2 arrays is: 36

相同大小的数组没有限制。因此,使用上面的公式很容易计算 2 坐标之间的城市街区距离,但我们可以使用预定义的方法来计算具有 2 维或更多维的数组。

代码: Python代码使用预定义的方法,使用上面的公式计算距离。

# Import necessary package
import scipy.spatial.distance as d
  
def CityBlock_distance(A, B):
  
    result = d.cdist(A, B, 'cityblock')
    return result
  
if __name__== "__main__":
  
    mat1 = [[1, 2, 13, 5], [2, 3, 4, 5]]
    mat2 = [[1, 27, 3, 4], [8, 6, 9, 3]]
  
    result = CityBlock_distance(mat1, mat2)
  
    print(result)

输出:

[[ 36.  17.]
 [ 27.  16.]]