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