gpt4 book ai didi

python - 除以0后,将numpy数组中的NaN替换为0

转载 作者:太空狗 更新时间:2023-10-30 00:27:44 32 4
gpt4 key购买 nike

我正在划分两个 numpy 数组:

>>> import numpy as np
>>> a1 = np.array([[ 0, 3],
[ 0, 2]])
>>> a2 = np.array([[ 0, 3],
[ 0, 1]])
>>> d = a1/a2
>>> d
array([[ nan, 1.],
[ nan, 2.]])
>>> where_are_NaNs = np.isnan(d)
>>> d[where_are_NaNs] = 0
>>> d
>>> array([[ 0., 1.],
[ 0., 2.]])

我正在寻找一种无需使用 for 循环即可获取 0 而不是 Nan 的方法?

numpy有没有和pandas中的fillna()类似的功能?

最佳答案

下面的代码应该有效并将所有 NAN 转换为 0

d[np.isnan(d)] = 0

如果您希望所有内容都在一条线上,请考虑

d = np.nan_to_num(a1/a2)

这会将所有 NAN 转换为 0,请参见此处:http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.nan_to_num.html

注意:除以 0 时,您应该按照下面@imp9 的解决方案来避免不必要的警告或错误。

关于python - 除以0后,将numpy数组中的NaN替换为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257436/

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