在Python中使用numpy / scipy忽略数组中的-Inf值

发布于 2021-01-29 15:15:59

我在numpy中有一个NxM数组,我想记录该日志,并忽略在记录之前为负数的条目。当我获取否定条目的日志时,它返回-Inf,因此,我将得到一个带有一些-
Inf值的矩阵。然后,我想对这个矩阵的列求和,但忽略了-Inf值-我该怎么做?

例如,

mylogarray = log(myarray)
# take sum, but ignore -Inf?
sum(mylogarray, 0)

我知道有nansum,我需要等价的东西,例如infsum。

谢谢。

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用掩码数组

    >>> a = numpy.array([2, 0, 1.5, -3])
    >>> b = numpy.ma.log(a)
    >>> b
    masked_array(data = [0.69314718056 -- 0.405465108108 --],
                 mask = [False  True False  True],
           fill_value = 1e+20)
    
    >>> b.sum()
    1.0986122886681096
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看