python - 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),因此循环遍历每个元素听起来并不正确。有没有很好的解决方案?