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

throwbool, 可选

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

namestr, 可选

要检查的变量的名称。 如果 throw 设置为 True,则此功能很有用,以便在抛出异常时可以在异常消息中标识违规变量。

warningbool, 可选

不抛出异常,而是引发警告消息。

返回:
validbool

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

注意

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