Python numpy:查看数组是否在公差范围内对称

Python numpy:查看数组是否在公差范围内对称,python,arrays,numpy,Python,Arrays,Numpy,我正在寻找一个函数,它接受一个二维正方形数组,并返回一个布尔值,该值反映a是否在公差范围内对称于a 我的代码如下所示: for i in range(len(a)): for j in range(len(a[0])): if abs(a[i][j] - a.transpose()[j][i]) <= tol: a == a.transpose().all 对于范围内的i(len(a)): 对于范围内的j(len(a[0]): 如果abs(

我正在寻找一个函数,它接受一个二维正方形数组,并返回一个布尔值,该值反映
a
是否在公差范围内对称于
a

我的代码如下所示:

for i in range(len(a)):
    for j in range(len(a[0])):
        if abs(a[i][j] - a.transpose()[j][i]) <= tol:
            a == a.transpose().all
对于范围内的i(len(a)):
对于范围内的j(len(a[0]):

如果abs(a[i][j]-a.transpose()[j][i])可以对计算进行矢量化:

def is_symmetric(a):
    return (np.abs(a - a.T) <= tol).all()
def是对称的(a):

return(np.abs(a-a.T)您可以将计算矢量化:

def is_symmetric(a):
    return (np.abs(a - a.T) <= tol).all()
def是对称的(a):

您可以使用
np.abs(a-a.T)
np.allclose(a,a.T,reltol,absol)
您可以使用
np.allclose(a,a.T,reltol,absol)
非常感谢您,如果我添加一个return(a),我仍然有点困惑在这一行的末尾,或者如果我需要添加更多的代码。我是新手,所以如果你想返回真或假,即条件,你可以返回这一行。
return(np.abs(a-a.T)你为什么不使用
np.allclose(a,a.T,atol=tol)
?@NilsWerner我想这应该归功于注释:),除此之外,这里的直接回答与
np.allclose
一样简洁。非常感谢,如果我添加一个返回(a),我仍然有点困惑在这一行的末尾,或者如果我需要添加更多的代码。我是新手,所以如果你想返回真或假,即条件,你可以返回这一行。
return(np.abs(a-a.T)你为什么不使用
np.allclose(a,a.T,atol=tol)
?@NilsWerner我想这应该归功于注释:),除此之外,这里的直接答案与
np.allclose
一样简洁。