使用布尔数组的入口和作为inclusive`或`

2024-06-17 15:15:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想比较许多m-by-n布尔numpy数组,如果至少一个输入中的对应条目为True,则得到一个相同形状的数组,其条目为True

我发现最简单的方法是:

In [5]: import numpy as np                                                      

In [6]: a = np.array([True, False, True])                                       

In [7]: b = np.array([True, True, False])                                       

In [8]: a + b                                                                   
Out[8]: array([ True,  True,  True])

但我也可以用

In [11]: np.stack([a, b]).sum(axis=0) > 0                                       
Out[11]: array([ True,  True,  True])

这些操作是否等效?有什么我应该注意的地方吗?一种方法比另一种更可取吗


Tags: 方法inimportnumpyfalsetruebystack
1条回答
网友
1楼 · 发布于 2024-06-17 15:15:29

您可以使用np.logical_or

a = np.array([True, False, True])
b = np.array([True, True, False])
np.logical_or(a,b)

它也适用于(m,n)数组

a = np.random.rand(3,4) < 0.5
b = np.random.rand(3,4) < 0.5
print('a\n',a)
print('b\n',b)
np.logical_or(a,b)

相关问题 更多 >