检查对称性#

sklearn.utils.validation.check_symmetric(array, *, tol=1e-10, raise_warning=True, raise_exception=False)[source]#

确保数组是二维的、方形的且是对称的。

如果数组不对称,则返回其对称版本。如果矩阵不对称,则可以选择性地发出警告或引发异常。

参数:
array{ndarray, 稀疏矩阵}

要检查/转换的输入对象。必须是二维且方形的,否则将引发 ValueError。

tolfloat, 默认值=1e-10

数组等价的绝对容差。默认值 = 1E-10。

raise_warningbool, 默认值=True

如果为 True,则如果需要转换则发出警告。

raise_exceptionbool, 默认值=False

如果为 True,则在数组不是对称矩阵时引发异常。

返回值:
array_sym{ndarray, 稀疏矩阵}

输入数组的对称版本,即数组与其转置的平均值。如果是稀疏矩阵,则首先将重复项求和并消除零元素。

示例

>>> 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)
<Compressed Sparse Row sparse matrix of dtype 'int64'
    with 6 stored elements and shape (3, 3)>