在进行数学计算和数据分析时,经常需要处理对称矩阵。对称矩阵是指矩阵等于其转置矩阵,即对于任意元素a[i][j],都有a[i][j] = a[j][i]。本工具旨在帮助用户检查和转换数组的对称性,确保输入的矩阵是二维、方阵且对称。
本工具具备以下功能特点:
- 二维方阵检查:确保输入的数组是二维且为方阵,即行数和列数相等。
- 对称性检查:检查数组是否对称,即是否满足a[i][j] = a[j][i]的条件。
- 对称性转换:如果输入的数组不是对称的,工具将返回其对称化版本,即数组与其转置的平均值。
- 异常处理:用户可以选择在数组不对称时抛出警告或异常。
以下是使用本工具的一个简单示例。首先,需要导入必要的库:
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:要检查或转换的输入对象,必须是二维且为方阵。
- tol:浮点数,默认值为1e-10,用于判断数组元素是否相等的绝对容忍度。
- raise_warning:布尔值,默认为True,如果为True,则在需要转换时抛出警告。
- raise_exception:布尔值,默认为False,如果为True,则在数组不对称时抛出异常。