scipy.spatial.distance.

is_valid_dm#

scipy.spatial.distance.is_valid_dm(D, tol=0.0, throw=False, name='D', warning=False)[源代码][源代码]#

如果输入数组是一个有效的距离矩阵,则返回 True。

距离矩阵必须是二维的 numpy 数组。它们必须具有零对角线,并且必须是对称的。

参数:
Darray_like

要测试其有效性的候选对象。

tolfloat, 可选

距离矩阵应该是对称的。tol 是条目 ijji 之间的最大差异,用于判断距离度量是否对称。

抛出bool, 可选

如果传递的距离矩阵无效,则会抛出异常。

名称str, 可选

要检查的变量的名称。如果将 throw 设置为 True,这很有用,这样在抛出异常时,可以在异常消息中识别出有问题的变量。

警告bool, 可选

不是抛出异常,而是引发了一条警告信息。

返回:
有效布尔

如果传递的变量 D 是一个有效的距离矩阵,则为真。

注释

如果 DD.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