check_symmetric#
- sklearn.utils.validation.check_symmetric(array, *, tol=1e-10, raise_warning=True, raise_exception=False)[source]#
Make sure that array is 2D, square and symmetric.
If the array is not symmetric, then a symmetrized version is returned. Optionally, a warning or exception is raised if the matrix is not symmetric.
- Parameters:
- array{ndarray, sparse matrix}
Input object to check / convert. Must be two-dimensional and square, otherwise a ValueError will be raised.
- tolfloat, default=1e-10
Absolute tolerance for equivalence of arrays. Default = 1E-10.
- raise_warningbool, default=True
If True then raise a warning if conversion is required.
- raise_exceptionbool, default=False
If True then raise an exception if array is not symmetric.
- Returns:
- array_sym{ndarray, sparse matrix}
Symmetrized version of the input array, i.e. the average of array and array.transpose(). If sparse, then duplicate entries are first summed and zeros are eliminated.
Examples
>>> import numpy as np >>> from sklearn.utils.validation import check_symmetric >>> symmetric_array = np.array([[0, 1, 2], [1, 0, 1], [2, 1, 0]]) >>> check_symmetric(symmetric_array) array([[0, 1, 2], [1, 0, 1], [2, 1, 0]]) >>> from scipy.sparse import csr_matrix >>> sparse_symmetric_array = csr_matrix(symmetric_array) >>> check_symmetric(sparse_symmetric_array) <3x3 sparse matrix of type '<class 'numpy.int64'>' with 6 stored elements in Compressed Sparse Row format>