gpt4 book ai didi

python - 为什么我没有从列表理解检查真值中获得索引返回?

转载 作者:行者123 更新时间:2023-11-30 22:51:01 25 4
gpt4 key购买 nike

所以我有一个包含数值、 float 和 NaN 的 numpy 数组:

In [1]: type(myarray)
Out[1]: numpy.ndarray

现在我想检查这个数组中哪里有 NaN,所以我尝试:

nan_idx = [idx for idx, tf in enumerate(myarray) if not bool(tf)]

但是这会返回一个空列表,但是当我尝试时:

np.where(pd.isnull(mayarray))[0]

我确实得到了每个 NaN 的索引作为输出

为什么第一次尝试没有产生任何结果?

最佳答案

您的第一个代码段不起作用的原因是 bool(float) 不检查 NaN:

>>> float('NaN')
nan
>>> bool(float('NaN'))
True
>>> not bool(float('NaN'))
False

要检查 NaN,您可以使用 numpy.isnan 或 NaN 与自身比较时不等于的事实:

>>> numpy.isnan(float('NaN'))
True
>>> float('NaN') != float('NaN')
True

关于python - 为什么我没有从列表理解检查真值中获得索引返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39150369/

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