我注意到in
可以在 numpy 数组之间使用。然而,它的含义可能有点违反直觉。
import numpy as np
np.array([0]) in np.array([1, 2])
# False
np.array([0]) in np.array([0, 1])
# True
np.array([0, 1]) in np.array([0])
# True -- somewhat surprisingly
所以看起来它的行为就像np.any(np.isin(·, ·))
而不是更直观的np.all(np.isin(·, ·))
.
- 事实真的如此吗?
- 这个选择背后的理由是什么?
由于“in”运算符行为是由 np.array 类的 contains 方法的实现定义的,因此您应该检查此答案https://stackoverflow.com/a/30690604/7533781 https://stackoverflow.com/a/30690604/7533781- 解释得很好。
遵循这个定义, np.array([0]) 中的 [0, 1] 也会计算为 True - 你可以自己尝试一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)