Изменить значения между двумя значениями specefi c в массиве Numpy - PullRequest
3 голосов
/ 01 мая 2020

В двоичном массиве numpy я хочу выбрать единицы и преобразовать все нули в 1.

, например:

np.array([0,0,1,0,0,0,0,1,0,0,0,0,0,0,1])

следует преобразовать в:

np.array([0,0,1,1,1,1,1,1,1,1,1,1,1,1,1])

или, если у меня есть следующие массивы:

np.array([0,0,1,0,0,0,0,0,0,0,0,0,0,0,0])
np.array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])

, они должны остаться без изменений. Есть ли быстрый способ реализовать это?

1 Ответ

4 голосов
/ 01 мая 2020

Мой подход:

start, end = a.argmax(), a[::-1].argmax() + 1

# only update if there is at least a one:
if a[start]==1:
    a[start:-end] = 1
...