check_symmetric#

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

确保数组是 2D、正方形和对称的。

如果数组不是对称的,则返回其对称化版本。若矩阵不对称,可选择抛出警告或异常。

参数:
array{ndarray, sparse matrix}

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

tolfloat, default=1e-10

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

raise_warningbool, default=True

如果为 True,则在需要转换时引发警告。

raise_exceptionbool, default=False

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

返回:
array_sym{ndarray, sparse matrix}

输入数组的对称化版本,即数组与其转置 (array.transpose()) 的平均值。如果为稀疏矩阵,则首先对重复条目求和并消除零值。

示例

>>> 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_array
>>> sparse_symmetric_array = csr_array(symmetric_array)
>>> check_symmetric(sparse_symmetric_array)
<Compressed Sparse Row sparse array of dtype 'int64'
    with 6 stored elements and shape (3, 3)>