gpt4 book ai didi

python - 不使用 numpy.logical_or 的逻辑或

转载 作者:行者123 更新时间:2023-11-28 21:52:01 24 4
gpt4 key购买 nike

要知道验证两个条件的 numpy 数组的元素,可以使用运算符 *:

>>> a = np.array([[1,10,2],[2,-6,8]])
>>> a
array([[ 1, 10, 7],
[ 2, -6, 8]])
>>> (a <= 6) * (a%2 == 0) # elements that are even AND inferior or equal to 6
array([[False, False, False],
[ True, True, False]], dtype=bool)

但是 OR 呢?我试着这样做:

>>> (a%2 == 0) + (a <= 6) - (a%2 == 0) * (a <= 6)
array([[ True, True, False],
[False, False, True]], dtype=bool)

但是对于同时验证这两个条件的元素,结果都是假的。我不明白为什么。

最佳答案

你不需要减法。重点是 +已经表现得像 or运算符

>>(a%2==0)+(a<=6)
array([[ True, True, True],
[ True, True, True]], dtype=bool)

因为“True+True=True”。

当你减去 (a<=6)*(a%2==0)您将满足这两个条件的所有元素变成 false .

直接做最简单

>>(a<=6)|(a%2==0)
array([[ True, True, True],
[ True, True, True]], dtype=bool)

关于python - 不使用 numpy.logical_or 的逻辑或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28900713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com