Bol*_*ter 14 python numpy matrix
是否有更好的pythonic方法来检查ndarray是否在特定维度上对角对称?即对于所有的x
(arr[:,:,x].T==arr[:,:,x]).all()
Run Code Online (Sandbox Code Playgroud)
我确定我错过了一个(duh)答案,但是这里的2:15 ...... :)
编辑:澄清一下,我正在寻找一种更"优雅"的方式:
for x in range(xmax):
assert (arr[:,:,x].T==arr[:,:,x]).all()
Run Code Online (Sandbox Code Playgroud)
Sve*_*ach 21
如果我理解正确,你想做检查
all((arr[:,:,x].T==arr[:,:,x]).all() for x in range(arr.shape[2]))
Run Code Online (Sandbox Code Playgroud)
没有Python循环.这是怎么做的:
(arr.transpose(1, 0, 2) == arr).all()
Run Code Online (Sandbox Code Playgroud)
Way*_*inn 13
如果您的数组包含浮点数(特别是如果它们是计算的结果),请使用 allclose
np.allclose(arr.transpose(1, 0, 2), arr)
Run Code Online (Sandbox Code Playgroud)
如果您的某些值可能是NaN,请在测试之前将它们设置为标记值.
arr[np.isnan(arr)] = 0
Run Code Online (Sandbox Code Playgroud)