Просто индексируйте массив, где значения конечны, используя np.isfinite()
(документы здесь ).
>>> 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).