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 是項目
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