numpy 数组之间的“in”运算符的含义是什么?

2024-01-06

我注意到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(·, ·)).

  1. 事实真的如此吗?
  2. 这个选择背后的理由是什么?

由于“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(使用前将#替换为@)

numpy 数组之间的“in”运算符的含义是什么? 的相关文章

随机推荐