Как рассчитать расстояние от канберры на python (с примером)
Расстояние Канберры между двумя векторами A и B рассчитывается следующим образом:
Расстояние от Канберры = Σ |A i -B i | / (|А 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