【发布时间】:2018-09-10 17:08:54
【问题描述】:
我有一个 3D 布尔数组 (5830L, 6447L, 4L),我想通过在第三维 (4L) 上使用 OR 布尔运算符将其简化为 (5830L, 6447L)。因此,我将对4L 2D 数组进行逐个元素的比较。一个简单的 1D 示例如下所示:
a = [True, False, True]
b = [False, False, True]
c = [True, False, True]
mask = [any(tup) for tup in zip(a, b, c)]
print mask
'True, False, True'
第三维的大小可能会有所不同,因此我需要在for 循环中运行它,或者以第三维的大小不像上面那样硬编码的方式运行它。
numpy.logical_or(a, b) 效果很好,但仅适用于 2 个数组元素 (2L)。
当它有 3 个或更多元素时,任何理想的方法;即第三维是 > 2L?
【问题讨论】:
标签: python numpy multidimensional-array boolean boolean-logic