我正在根据给定的掩码过滤数组,但我也想保留原始形状。到现在为止,我一直在对每个面具进行 AND 运算,并将该面具用作我的最终面具。但是第一个过滤器很特殊,因为它会从原始数组中删除 NAN。
考虑这个玩具示例
a = np.array([1,0,-1,2,0])
b = a != 1
c = a[b] != 0
c &= a[b] == 2
此代码块后的输出为 [False False True False]
。但是,我想实现[False False False True False]
。因此结果只会指向 2
。
我以为我可以 OR b
和 c
但掩码不是连续的。这里的问题是我不能在这里做 for 循环,因为原始数组包含超过 100 万个元素并且有超过 10 个过滤器。所以很高兴知道我如何利用 NumPy 的广播功能。