首页 > 解决方案 > Numpy 在数组的每个元素上应用条件

问题描述

python初学者在这里。我有一个可能非常简单的问题,但我无法弄清楚。

假设我有一个 numpy 数组: a = np.array([1,2,3,4,5])

我想将每个元素乘以 2,但将结果限制为最大值,例如 6。所以我的结果将是一个数组([2,3,6,6,6])

但是,当我这样做时: b = min(6, a * 2)

我收到此错误: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我一直在做一些阅读,我可以理解为什么 a.any() 或 a.all() 是必需的,但我不知道如何实现这一点。我可以通过循环遍历a每个项目并单独传递条件来避免错误,但这似乎非常低效。这是我的实际数组的简化版本,其形状为 (27,360,720),因此循环遍历每个元素听起来并不正确。有没有很好的解决方案?

标签: pythonarraysnumpyvalueerror

解决方案


推荐阅读