我正在使用Python 2.7和NumPy处理大量布尔值数组。
我有一个名为A的数组,它长这样:
>>> A
array([[[False, False, True, True, True],
[False, False, False, True, True],
[False, False, True, True, True],
[False, False, False, True, True],
[False, False, False, False, True]],
[[False, True, True, True, True],
[False, True, True, True, True],
[False, False, True, True, True],
[False, True, True, True, True],
[False, False, True, True, True]]])
我需要将它转换成如下布尔数组:
>>> B
array([[[True, False, True, True, True],
[True, True, False, True, True],
[True, False, True, True, True],
[True, True, False, True, True],
[True, True, True, False, True]],
[[False, True, True, True, True],
[False, True, True, True, True],
[True, False, True, True, True],
[False, True, True, True, True],
[True, False, True, True, True]]])
因此,每一行的最后一个False
值应该保留,任何其他值都应变为True
。我需要创建它以便将其用作另一个数组的掩码。
有没有一种方法可以使用 NumPy 而不使用for
循环(这些循环相当慢)来实现?