scipy.spatial.distance.

is_valid_dm#

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

如果輸入陣列是有效的距離矩陣,則返回 True。

距離矩陣必須是 2 維 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