scipy.spatial.distance.
is_valid_dm#
- scipy.spatial.distance.is_valid_dm(D, tol=0.0, throw=False, name='D', warning=False)[source]#
如果输入数组是有效的距离矩阵,则返回 True。
距离矩阵必须是二维 numpy 数组。它们必须具有零对角线,并且必须是对称的。
- 参数:
- Darray_like
要测试有效性的候选对象。
- tolfloat, 可选
距离矩阵应该是对称的。 tol 是距离度量被认为对称的条目
ij
和ji
之间的最大差异。- throwbool, 可选
如果传递的距离矩阵无效,则会抛出异常。
- namestr, 可选
要检查的变量的名称。这在 throw 设置为 True 时很有用,以便在抛出异常时,在异常消息中识别出有问题的变量。
- warningbool, 可选
不抛出异常,而是发出警告消息。
- 返回:
- validbool
如果传递的变量 D 是有效的距离矩阵,则为 True。
备注
如果 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