测试 numpy 数组是否对称?
有没有更好的Pythonic方法来检查ndarray在特定维度上是否对角对称?即对于所有 x,
(arr[:,:,x].T==arr[:,:,x]).all()
我确定我错过了一个(废话)答案,但这里是 2:15...:)
编辑:澄清一下,我正在寻找一种更“优雅”的方法:
for x in range(xmax):
assert (arr[:,:,x].T==arr[:,:,x]).all()
Is there a better pythonic way of checking if a ndarray is diagonally symmetric in a particular dimension? i.e for all of x
(arr[:,:,x].T==arr[:,:,x]).all()
I'm sure I'm missing an (duh) answer but its 2:15 here... :)
EDIT: to clarify, I'm looking for a more 'elegant' way to do :
for x in range(xmax):
assert (arr[:,:,x].T==arr[:,:,x]).all()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
进行检查
如果我理解正确的话,你想在没有 Python 循环的情况下 。操作方法如下:
If I understand you correctly, you want to do the check
without the Python loop. Here is how to do it:
如果您的数组包含浮点数(特别是如果它们是计算结果),请使用 < code>allclose
如果您的某些值可能为
NaN
,请在测试前将它们设置为标记值。If your array contains floats (especially if they're the result of a computation), use
allclose
If some of your values might be
NaN
, set those to a marker value before the test.我知道你问过 NumPy。但是 SciPy(NumPy 姊妹包)有一个内置函数,称为 issymmetry,用于检查 2D NumPy 数组是否对称。你也可以使用它。
I know you asked about NumPy. But SciPy, NumPy sister package, has a build-in function called
issymmetric
to check if a 2D NumPy array is symmetric. You can use it too.