Я пытаюсь разделить массив смещений на сдвинутую версию самого себя.Массив содержит 0
, поэтому, естественно, произойдет деление на ноль.Но я подумал, что вставка np.where
поможет.Это не так.
import numpy as np
tpx = np.array([0.95, 0.9, 0.85, 0.80, 0.75, 0.0, 0.0, 0.0])
px = np.where(tpx[:-1]!=0, tpx[1:]/tpx[:-1], 0)
px = np.where(tpx[:-1]!=0, tpx[1:]/tpx[:-1], 0)
__main__:1: RuntimeWarning: invalid value encountered in true_divide
Out[4]:
array([0.94736842, 0.94444444, 0.94117647, 0.9375 , 0. ,
0. , 0. ])
Я также пытался использовать np.isclose
, как, например,
px = np.where(np.isclose(tpx[:-1], 0, atol=1e-12)==False, tpx[1:]/tpx[:-1], 0)
Но все равно выдает предупреждение.Как я могу избавиться от этого предупреждения?Результат, однако, выглядит хорошо.
Я действительно не хочу начинать нарезку массива, потому что важно, чтобы результирующий массив сохранил свой размер.