Как рассчитать расстояние до Канберры в Python (с примером)


Канберрское расстояние между двумя векторами, A и B, рассчитывается как:

Канберрское расстояние = Σ |A i -B i | / (|А я | + |В я |)

куда:

  • A i : i -е значение в векторе A
  • B i : i -е значение в векторе B

Например, предположим, что у нас есть следующие два вектора:

  • А = [2, 4, 4, 6]
  • В = [5, 5, 7, 8]

Мы рассчитали бы Канберрское расстояние между A и B как:

  • Канберрское расстояние = |2-5|/(2+5) + |4-5|/(4+5) + |4-7|/(4+7) + |6-8|/(6+8)
  • Канберрское расстояние = 3/7 + 1/9 + 3/11 + 2/14
  • Канберрское расстояние = 0,95527

Канберрское расстояние между этими двумя векторами равно 0,95527 .

В следующем примере показано, как рассчитать канберрское расстояние между этими точными двумя векторами в Python.

Пример: расчет расстояния до Канберры в Python

Во-первых, давайте создадим массив NumPy для хранения каждого из наших векторов:

import numpy as np

#define two arrays
array1 = np.array([2, 4, 4, 6])
array2 = np.array([5, 5, 7, 8])

Затем мы можем использовать функцию canberra() из пакета SciPy в Python, чтобы вычислить канберрское расстояние между двумя векторами:

from scipy. spatial import distance

#calculate Canberra distance between the arrays
distance. canberra (array1, array2)

0.9552669552

Канберрское расстояние между двумя векторами равно 0,95527 .

Обратите внимание, что это значение совпадает с тем, которое мы рассчитали ранее вручную.

Примечание.Полную документацию по функции canberra() из пакета SciPy можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как рассчитать другие распространенные метрики расстояния в Python:

Как рассчитать евклидово расстояние в Python
Как рассчитать манхэттенское расстояние в Python
Как рассчитать расстояние Хэмминга в Python
Как рассчитать расстояние Махаланобиса в Python
Как рассчитать расстояние Левенштейна в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.