我相信很多人都使用numpy的日志功能。你如何处理与南和-Inf?有没有从数组中取出任何Python的方式?
a = np.array([[0,1],
[0,0],
[1,1]])
b = np.log(a[:,0]/a[:,1])
print(b)
简单地索引阵列,其中的值是使用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)。