scipy.linalg.issymmetric¶
- scipy.linalg.issymmetric(a, atol=None, rtol=None)¶
检查正方形二维阵列是否对称。
- 参数
- andarray
大小为(N,N)的输入数组。
- atol浮动,可选
绝对误差界
- rtol浮动,可选
相对误差界
- 退货
- sym布尔尔
如果数组对称,则返回True。
- 加薪
- TypeError
如果不支持数组的数据类型,特别是NumPy float16,则使用Float128和Complex 256数据类型进行精确比较。
参见
ishermitian
检查正方形二维数组是否为厄米特数组
注意事项
对于正方形空数组,按照惯例,结果返回True。测试复值数组的对称性,而不是埃尔米特数组(参见示例)。
不扫描阵列的对角线。因此,如果对角线上有INF、NAN或类似的有问题的条目,它们将被忽略。然而,
numpy.inf
将被视为一个数字,也就是说[[1, inf], [inf, 2]]
会回来的True
。另一方面,numpy.NaN
从来不是对称的,比方说,[[1, nan], [nan, 2]]
会回来的False
。什么时候
atol
和/或rtol
设置为,则由numpy.allclose
并将公差值传递给它。否则,内部函数将执行与零的精确比较。因此,根据阵列的大小和数据类型,性能可以提高或降低。如果其中一个atol
或rtol
假设另一个被自动设置为零。示例
>>> from scipy.linalg import issymmetric >>> A = np.arange(9).reshape(3, 3) >>> A = A + A.T >>> issymmetric(A) True >>> Ac = np.array([[1. + 1.j, 3.j], [3.j, 2.]]) >>> issymmetric(Ac) # not Hermitian but symmetric True