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:
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: 412
Code: 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) |
Output:
The CityBlock distance between 2 arrays is: 36
There 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.]]
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.