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 是条目
ij
和ji
之间的最大差异,用于判断距离度量是否对称。- 抛出bool, 可选
如果传递的距离矩阵无效,则会抛出异常。
- 名称str, 可选
要检查的变量的名称。如果将 throw 设置为 True,这很有用,这样在抛出异常时,可以在异常消息中识别出有问题的变量。
- 警告bool, 可选
不是抛出异常,而是引发了一条警告信息。
- 返回:
- 有效布尔
如果传递的变量 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