Я пытаюсь вставить nan
s при определенных показателях.
import numpy
z = numpy.array([1., 1., 0., 0., 0., 2., 3., 4., 5., 6., 0., 7., 8., 9.])
a = z[z!=0]
# Some processing magic happens to a but stays the same shape
b = numpy.argwhere(z == 0).flatten()
c = numpy.insert(a, b, numpy.nan)
Мне бы хотелось, чтобы результат был:
[1, 1, nan, nan, nan, 2, 3, 4, 5, 6, nan, 7, 8, 9]
, но я получаю:
[1, 1, nan, 2, nan, 3, nan, 4, 5, 6, 7, 8, 9, nan]
Есть ли способ достичь этого с помощью numpy.insert
или другая встроенная команда, и если нет, что такое хороший чистый обходной путь?Список индексов всегда будет восходящим, никогда не будет дубликатов, но может иметь пробелы, как в примере.
РЕДАКТИРОВАТЬ Извините за путаницу, когда я редактировал свой вопрос.