С log2
a 0
выдает предупреждение и -inf:
In [537]: x = np.arange(5.)
In [538]: np.log2(x)
/usr/local/bin/ipython3:1: RuntimeWarning: divide by zero encountered in log2
#!/usr/bin/python3
Out[538]: array([ -inf, 0. , 1. , 1.5849625, 2. ])
Но log2
является ufunc и принимает параметры where
и out
, которые могут бытьиспользуется для обхода этого предупреждения:
In [539]: out = np.zeros_like(x)
In [540]: np.log2(x, out=out, where=x>0)
Out[540]: array([0. , 0. , 1. , 1.5849625, 2. ])
In [541]: out
Out[541]: array([0. , 0. , 1. , 1.5849625, 2. ])