我不是任何想象力的Python专家,但是这个让我难住。无论是我还是错过了一些完全明显的东西。它必须是其中的一个。Numpy奇怪的行为 - 健全性检查。这怎么可能?
我有两个numpy阵列,a
和b
。 a
应该是b
的适当子集。为了证实这一点,我产生了设置差异:
>>> np.setdiff1d(a, b)
array([], dtype=float64)
如预期的那样。因此a
是b
的子集。 除非我的setdiff1d
理解是错误的,我想这可能是,但我重读文档,它指出setdiff1d
返回:在AR1值
排序维数组不在AR2。
好的,这里是一些奇怪的事情发生。我有一些价值p
。下面列出的是一个真实的陈述,如果a
真的是b
一个子集: 如果p
是a
,然后p
也是b
当试图证实这一点,我得到:
>>> p in a
True
>>> p in b
False
所以我不确定发生了什么,我希望有人会指出我愚蠢的错误和笑声。
通过确定它们是否彼此完全相等但它们不是由于浮点错误引起的,您正在比较浮点数。 – Suever
就是这样。谢谢。在Pandas和Numpy之间移动时,id列上的dtype会发生分歧(可能是由于类型内聚?),一个是float64,另一个是int64。如果你将你的评论复制到回复中,你就会得到答案。 – user3667122