我正在尝试根据另一个数组的内容来索引一个数组,如下所示:
import numpy as np
a = np.random.randint(0,100,10)
b = np.linspace(0,100,10)
print a[b<75]
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我真正想做的是基于两个条件的索引,如下所示:
print a[25<b<75]
Run Code Online (Sandbox Code Playgroud)
但这会产生以下错误:
ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()
谢谢你的帮助!
来自 Python 文档:
比较可以任意链接,例如, x < y <= z 等价于 x < y 和 y <= z
但是 Numpy 数组不适合模式x < y and y <= z,因为它意味着[a bool ndarray] and [a bool ndarray],并且这要求and在 numpy ndarrays 的两侧对整个数组(例如,b==True)都有一个未定义的 bool 值。
因此,您必须对数组使用二进制按位运算以获取元素级的“and”: (b > 25) & (b < 75)。
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |