gpt4 book ai didi

python - 为什么 "a or b or c"不适用于 NumPy 数组?

转载 作者:行者123 更新时间:2023-12-02 22:48:22 25 4
gpt4 key购买 nike

我想分配给d或者a,或者,如果aNone b 或者,如果 b 也是 None,则为 c。这有效:

a = b = c = np.array([1])
d = a or b or c

但是,这不会:

a = b = c = np.array([1, 2])
d = a or b or c

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

显然,or 正在逐元素地用于具有多个元素的数组。我可以做什么来实现

d = a or b or c

使用 NumPy 数组?

最佳答案

I would like to assign to d either a or, if a is None, b or, if b is also None, c.

然后逐字检查None:

d = a if a is not None else b if b is not None else c

您的版本适用于单元素数组这一事实是其真实性的副作用。它不会达到您的预期:

a = np.array([0])
b = "wat"

c = a or b

c 现在将是 "wat",即使 a 不是 None

关于python - 为什么 "a or b or c"不适用于 NumPy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59324067/

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