测试numpy数组是否对称?

2024-05-28 01:39:26 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有更好的python方法来检查ndarray是否在特定维度上是对角对称的?i、 所有x的e

(arr[:,:,x].T==arr[:,:,x]).all()

我肯定我漏掉了一个答案,但这里是2:15。。。:)

编辑:为了澄清,我正在寻找一种更“优雅”的方式:

for x in range(xmax):
    assert (arr[:,:,x].T==arr[:,:,x]).all()

Tags: 方法答案in编辑for方式rangeassert
2条回答

如果数组包含浮点数(特别是如果它们是计算的结果),请使用^{}

np.allclose(arr.transpose(1, 0, 2), arr)

如果某些值可能是NaN,请在测试之前将其设置为标记值。

arr[np.isnan(arr)] = 0

如果我没听错的话,你想检查一下

all((arr[:,:,x].T==arr[:,:,x]).all() for x in range(arr.shape[2]))

没有Python循环。以下是操作方法:

(arr.transpose(1, 0, 2) == arr).all()

相关问题 更多 >