我在网上的一些例子中看到了这段代码,正在尝试理解和修改它:
c = a[b == 1]
为什么这样做?b == 1
对于b
满足等式的每个元素,它似乎返回 true 。我不明白这样的事情如何a[True]
最终评估为“对于 a 中相同索引值b
等于 1 的所有值,将它们复制到c
”
a
, b
, 和c
都是包含一些数据的相同长度的 NumPy 数组。我已经搜索了很多,但甚至不知道如何称呼这种东西。
如果我想添加第二个条件,例如:
c = a[b == 1 and d == 1]
我得到
ValueError:包含多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我知道发生这种情况是因为由于此处解释的原因,相等运算的组合不明确,但我不确定如何仅在一行中添加a.any()
或添加a.all()
到该表达式中。
编辑:
对于问题 2,c = a[(b == 1) & (d == 1)]
有效。关于我的第一个问题关于如何/为什么工作的任何意见?
FFIVE
慕勒3428872
相关分类