Я бы хотел взять разницу несмежных значений в массиве 1D numpy.
Массив - это выбор значений по временной шкале от 1 до N
.
Для N=12
массив может выглядеть следующим образом:
timeline = np.array([ 0, np.nan, np.nan, 4, np.nan, 6, np.nan, np.nan, 9, np.nan, 11, 12])
или
timeline = np.array([ 0, 0, 0, 4, 0, 6, 0, 0, 9, 0, 11, 12])
Требуемый результат должен выглядеть следующим образом: (размер массива не поврежден, а положение важно )
diff = np.array([ 0, 0, 0, 4, 0, 2, 0, 0, 3, 0, 2, 1])
np.diff
возвращает разницу смежных значений, и использование значений NaN, чтобы «заставить» его использовать последнее «хорошее» значение, не работает.
Есть ли простой способ сделать это?