bundles / scipy latest / scipy / cluster / hierarchy / is_valid_im
function
scipy.cluster.hierarchy:is_valid_im
Signature
def is_valid_im ( R , warning = False , throw = False , name = None ) Summary
Return True if the inconsistency matrix passed is valid.
Extended Summary
It must be a by 4 array of doubles. The standard deviations R[:,1] must be nonnegative. The link counts R[:,2] must be positive and no greater than .
Parameters
R: ndarrayThe inconsistency matrix to check for validity.
warning: bool, optionalWhen True, issues a Python warning if the linkage matrix passed is invalid.
throw: bool, optionalWhen True, throws a Python exception if the linkage matrix passed is invalid.
name: str, optionalThis string refers to the variable name of the invalid linkage matrix.
Returns
b: boolTrue if the inconsistency matrix is valid; False otherwise.
Notes
Array API support (experimental): If the input is a lazy Array (e.g. Dask or JAX), the return value may be a 0-dimensional bool Array. When warning=True or throw=True, calling this function materializes the array.
Array API Standard Support
is_valid_im has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable SCIPY_ARRAY_API=1 and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.
==================== ==================== ==================== Library CPU GPU ==================== ==================== ==================== NumPy ✅ n/a CuPy n/a ✅ PyTorch ✅ ✅ JAX ⚠️ see notes ⚠️ see notes Dask ⚠️ see notes n/a ==================== ==================== ====================
See
dev-arrayapifor more information.
Examples
from scipy.cluster.hierarchy import ward, inconsistent, is_valid_im from scipy.spatial.distance import pdist✓
X = [[0, 0], [0, 1], [1, 0], [0, 4], [0, 3], [1, 4], [4, 0], [3, 0], [4, 1], [4, 4], [3, 4], [4, 3]]✓
Z = ward(pdist(X)) R = inconsistent(Z)✓
Z R✗
is_valid_im(R)
✓R[-1,1] = R[-1,1] * -1 is_valid_im(R)✓
See also
- inconsistent
for the creation of a inconsistency matrix.
- linkage
for a description of what a linkage matrix is.
Aliases
-
scipy.cluster.hierarchy.is_valid_im