4 Ways to Calculate Distance Between Two Vectors in Python

A vector in Python is a data structure representing a sequence of elements. It is used to store numeric data but can also store other types of data, such as strings.

What is Vector distance in Python?

Vector distance, also known as vector norm, is a measure of the length of a vector in a vector space. The distance of a vector is a measure of the magnitude of the vector, a mathematical concept that describes the size and direction of a vector.

Python distance between two vectors

4 ways to calculate the distance between two vectors in Python.

  1. Using the euclidean() function.
  2. Using the np.linalg.norm() function.
  3. Using the np.dot() function.
  4. Using square() and sum().

Method 1: Use the euclidean() function

To calculate the distance between two vectors in Python, use the euclidean() function from the scipy.spatial.distance module. The euclidean() function calculates the Euclidean distance, which is the straight-line distance between two points in n-dimensional space.

To use the euclidean() function in a Python file, import the scipy library and if it is not installed on your machine, then type the following command to install it.

python3 -m pip install scipy

Now, you can use all the functions from the scipy library.

Here is an example of calculating the distance between two vectors.

from scipy.spatial.distance import euclidean

# Define two vectors as lists of numbers
vector_1 = [11, 21, 31]
vector_2 = [41, 51, 61]

# Calculate the distance between the two vectors using the euclidean() function
distance = euclidean(vector_1, vector_2)
print(distance)

Output

51.96152422706632

The distance between two vectors in the above example is: 51.96152422706632.

In this example, we created two vectors by initializing two lists and then used the euclidean() function from the scipy library to calculate the distance.

Method 2: Use np.linalg.norm() function

To calculate the distance between two vectors using numpy, use the np.linalg.norm() function. The numpy module provides a linalg.norm() function that calculates the Euclidean norm of a vector, which is the square root of the sum of the squares of the vector’s components.

Use the np.linalg.norm() function to calculate the distance between two vectors by taking the difference between the vectors and calculating the distance between the vectors.

import numpy as np

# Define two vectors as array of numbers
vector_1 = np.array([11, 21, 31])
vector_2 = np.array([41, 51, 61])

# Calculate the difference between the vectors
difference = vector_1 - vector_2

# Calculate the distance of two vectors
distance = np.linalg.norm(difference)

print(distance)

Output

51.96152422706632

Method 3: Using the dot() method

To calculate the distance of two vectors using the np.dot() method, calculate the difference between two vectors using subtraction, and use the np.dot() function to calculate the dot product of two vectors in which one is the transpose of the subtraction output. One is subtraction output, and the np.sqrt() function calculates the distance between two vectors.

import numpy as np

# Define two vectors as arrays of numbers
vector_1 = np.array([11, 21, 31])
vector_2 = np.array([41, 51, 61])

# Calculate the difference between the vectors
difference = vector_1 - vector_2

# Calculate the distance of two vectors
dot_product = np.dot(difference.T, difference)

# printing Euclidean distance between two vectors using np.sqrt()
print(np.sqrt(dot_product))

Output

51.96152422706632

Method 4: Using square() and sum() functions

To calculate the sum of squares in Python, apply the np.sum() method on the result of np.square(), which takes the subtraction of vector 1 and vector 2.

Apply the np.sqrt() function on the result of the np.sum() method, and you will get the distance between two vectors.

import numpy as np

# Define two vectors as arrays of numbers
vector_1 = np.array([11, 21, 31])
vector_2 = np.array([41, 51, 61])

# Calculating the sum of squares
distance = np.sum(np.square(vector_1 - vector_2))

# printing Euclidean distance using np.sqrt() function
print(np.sqrt(distance))

Output

51.96152422706632

And we get the same output as the above three outputs on three different approaches.

Conclusion

The best and an efficient way to calculate the distance between two vectors in Python is to use the euclidean() function provided by the scipy library.

If you are working with an array, use the np.linalg.norm() function.

Leave a Comment