繁体   English   中英

如何仅对满足索引内条件的二维 numpy 数组的元素执行操作,而不在 Python 中迭代?

[英]How can I perform an operation only on elements of a 2D numpy array that meet a conditional within an index without iterating in Python?

我正在尝试实现一种求解算法,如果数组元素为负,则使用一个方程,如果为正,则使用另一个方程。 这是我试图区分这两种情况的代码:

    Xn = X.copy()
    X[X[2:-2, 2:-2]>=0] = #algorithm A, calls several upstream values from Xn
    X[X[2:-2, 2:-2]<0] = #algorithm B, calls several downstream values from Xn

我只想为 X[2:-2, 2:-2] 赋值。 X 的形状是 (21,21) 而 X[2:-2,2:-2] 是 (17,17)。 我用上面的代码得到这个错误:

IndexError:boolean 索引与维度 0 上的索引数组不匹配; 尺寸为 21,但对应的 boolean 尺寸为 17

在不迭代每个元素的情况下如何做到这一点?

使用矢量化。 这将解决你所有的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM