scipy.spatial.distance.

is_valid_dm#

scipy.spatial.distance.is_valid_dm(D, tol=0.0, выбросить=False, имя='D', предупреждение=False)[источник]#

Возвращает True, если входной массив является корректной матрицей расстояний.

Матрицы расстояний должны быть двумерными массивами numpy. Они должны иметь нулевую диагональ и быть симметричными.

Параметры:
Darray_like

Кандидат для проверки на валидность.

tolfloat, опционально

Матрица расстояний должна быть симметричной. tol является максимальной разницей между элементами ij и ji чтобы метрика расстояния считалась симметричной.

выброситьbool, необязательно

Исключение выбрасывается, если переданная матрица расстояний недействительна.

имяstr, optional

Имя переменной для проверки. Это полезно, если throw установлен в True, чтобы ошибочная переменная могла быть идентифицирована в сообщении об исключении при его возникновении.

предупреждениеbool, необязательно

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

Возвращает:
валидныйbool

True, если переменная D переданная матрица является корректной матрицей расстояний.

Примечания

Небольшие численные различия в D и D.T и ненулевость диагонали игнорируются, если они находятся в пределах допуска, указанного tol.

Примеры

>>> import numpy as np
>>> from scipy.spatial.distance import is_valid_dm

Эта матрица является допустимой матрицей расстояний.

>>> d = np.array([[0.0, 1.1, 1.2, 1.3],
...               [1.1, 0.0, 1.0, 1.4],
...               [1.2, 1.0, 0.0, 1.5],
...               [1.3, 1.4, 1.5, 0.0]])
>>> is_valid_dm(d)
True

В следующих примерах вход не является корректной матрицей расстояний.

Не квадратная:

>>> is_valid_dm([[0, 2, 2], [2, 0, 2]])
False

Ненулевой диагональный элемент:

>>> is_valid_dm([[0, 1, 1], [1, 2, 3], [1, 3, 0]])
False

Не симметрично:

>>> is_valid_dm([[0, 1, 3], [2, 0, 1], [3, 1, 0]])
False