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
之间最大差异,超过此差异则认为距离度量不是对称的。- 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