gpt4 book ai didi

python - ValueError : The truth value of an array with more than one element is ambiguous. 使用 a.any() 或 a.all()

转载 作者:IT老高 更新时间:2023-10-28 12:22:25 26 4
gpt4 key购买 nike

x 是一个 NumPy 数组。以下:

(x > 1) and (x < 3)

给出错误信息:

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

我该如何解决这个问题?

最佳答案

如果 ab是 bool NumPy 数组,&操作返回它们的元素和:

a & b

返回一个 bool 数组。要将其减少为单个 bool ,请使用任一

(a & b).any()

(a & b).all()

注意:如果 ab非 bool 数组,考虑 (a - b).any()(a - b).all()而是。


基本原理

NumPy 开发人员认为没有一种普遍理解的方法来评估 bool 上下文中的数组:它可能意味着 True如果 任何 元素是 True , 或者它可能意味着 True如果所有元素都是True , 或 True如果数组的长度不为零,仅列举三种可能性。

由于不同的用户可能有不同的需求和不同的假设,因此NumPy 开发人员拒绝猜测,而是决定提出 ValueError每当尝试在 bool 上下文中评估数组时。申请and到两个 numpy 数组会导致在 bool 上下文中计算两个数组(通过在 Python3 中调用 __bool__ 或在 Python2 中调用 __nonzero__)。

关于python - ValueError : The truth value of an array with more than one element is ambiguous. 使用 a.any() 或 a.all(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062954/

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