【问题标题】:Python numpy: see if an array is symmetric within a tolerancePython numpy:查看数组是否在公差范围内对称
【发布时间】:2017-08-10 02:33:46
【问题描述】:

我正在寻找一个函数,它采用二维方阵并返回一个布尔值,该值反映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

我注意到当我返回(a)时,我实际上并没有返回我想要的东西,而且我不知道如何解决这个问题。

【问题讨论】:

  • 你可以使用np.allclose(a, a.T, reltol, abstol)

标签: python arrays numpy


【解决方案1】:

你可以向量化计算:

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

【讨论】:

  • 非常感谢,如果我在此行末尾添加 return(a) 或者我需要添加更多代码,我仍然有点困惑。我是新手,非常感谢您的帮助
  • 如果你想返回True或False,即条件,你可以只返回这一行。 return (np.abs(a - a.T) &lt;= tol).all().
  • 你为什么不用np.allclose(a, a.T, atol=tol)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 2015-11-28
相关资源
最近更新 更多