如何使用日志功能时,应对numpy的,-INF和楠

问题描述 投票:0回答:1

我相信很多人都使用numpy的日志功能。你如何处理与南和-Inf?有没有从数组中取出任何Python的方式?

a = np.array([[0,1],
              [0,0],
              [1,1]])

b = np.log(a[:,0]/a[:,1])

print(b)
python-3.x numpy
1个回答
2
投票

简单地索引阵列,其中的值是使用np.isfinite()有限(文件here)。

>>> a = np.array([[0,1],
                  [0,0],
                  [1,1]])
>>> b = np.log(a[:,0]/a[:,1])
>>> b[np.isfinite(b)]
array([ 0.])

np.isfinite()功能会给你一个布尔阵列的尺寸与输入数组,它是True地方的值是有限的,即非NaN的和非INF,和False否则相同的:

>>> np.isfinite(b)
array([False, False,  True], dtype=bool)

其然后可以被用作一个布尔索引,所以其中这个结果是b它将只抓住出True的值(在这种情况下,这是最后的索引,其具有值0)。

© www.soinside.com 2019 - 2024. All rights reserved.