Related Articles

Related Articles

Python | Calculate City Block Distance
  • Last Updated : 11 May, 2020

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.

filter_none

edit
close

play_arrow

link
brightness_4
code

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)

chevron_right


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.

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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)

chevron_right


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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :