gpt4 book ai didi

python - Numpy 奇怪的行为 - 健全性检查。这怎么可能?

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:07 25 4
gpt4 key购买 nike

无论怎么想,我都不是 Python 专家,但这个让我难住了。要么,要么我错过了一些非常明显的东西。它必须是两者之一。

我有两个 numpy 数组,aba 应该是 b 的真子集。为了证实这一点,我产生了集合差异:

>>> np.setdiff1d(a, b)
array([], dtype=float64)

如预期。 a 因此是 b 的子集。除非我对 setdiff1d 的理解是错误的,我想这可能是错误的,但我重新阅读了文档,它指出 setdiff1d 返回一个:

Sorted 1D array of values in ar1 that are not in ar2.

好吧,这里发生了一些奇怪的事情。我有一些值 p。如果 a 确实是 b 的子集,则以下语句应为真:如果pa中,那么p也在b

当试图确认这一点时,我得到:

>>> p in a
True
>>> p in b
False

所以我不确定到底发生了什么,我希望有人能指出我的愚蠢错误并大笑。

最佳答案

setdiff1d 和您的其他方法检查数字是否精确相等。由于浮点错误,您的数字很可能不完全相等。如果您想进行 float 比较,则应该使用非常小的 epsilon。

if abs(a - b) < 1e-12:
disp('equal!')

关于python - Numpy 奇怪的行为 - 健全性检查。这怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38624827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com