如何在Python中实现与Matlab等效的numpy布尔数组逻辑索引操作?
Numpy 实现 Matlab 等价逻辑索引的方法
Numpy 原生支持和 Matlab 完全一致的布尔索引语法,你可以直接用相同的写法实现需求:
C = A[B]
这个操作会返回所有B中值为True的位置对应的A的元素,默认输出为一维数组。
注意事项
- 请确保
B和A的形状完全一致,否则Numpy会触发广播机制得到非预期结果,这和Matlab形状不匹配直接报错的逻辑不同。 - Numpy默认按行优先(C顺序)展平数组,Matlab默认按列优先(Fortran顺序)展平,如果需要完全对齐Matlab的输出顺序,可以使用如下写法:
C = A.flatten(order='F')[B.flatten(order='F')]
内容的提问来源于stack exchange,提问作者jwm
相关产品推荐
相关产品推荐

