City block distance is generally calculated between 2-coordinates of a paired object. It is the summation of absolute difference between 2-coordinates. The city block distance of 2-points a and b with k dimension is mathematically calculated using below formula:
In this article two solution are explained for this problem - one with the Python code and the other one with the use of a predefined method.
Examples:
Python3 1==
Output:
Python3 1==
In this article two solution are explained for this problem - one with the Python code and the other one with the use of a predefined method.
Examples:
Input: array1 = [1, 2, 13, 5] array2 = [1, 27, 3, 4] Output: The CityBlock distance between 2 array is: 36 Input: a = [34, 44, 89, 81, 67, 49, 33, 59] b = [98, 34, 23, 12, 233, 23, 44] Output: The CityBlock distance between 2 array is: 412Code: Python scratch code to calculate the distance using the above formula.
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: 36There is no restriction for the same size of arrays. So, it’s easy to calculate City Block distance between 2-coordinates using above formula but we can calculate the same using predefined method for arrays having 2-dimension or more. Code: Python code using the predefined method to calculate the distance using the above formula.
# 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)
Output:
[[ 36. 17.] [ 27. 16.]]