2016-08-18 2 views
3

У меня есть 1-й массив с нулями, разбросанными повсюду. Хотелось бы, чтобы создать второй массив, который содержит позицию последнего нуля, например, так:Адрес последнего значения в 1d NumPy-массиве

>>> a = np.array([1, 0, 3, 2, 0, 3, 5, 8, 0, 7, 12]) 
>>> foo(a) 
[0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3] 

Есть встроенная функция NumPy или радиовещательной трюк, чтобы сделать это без использования для цикла или другого итератора?

ответ

8
>>> (a == 0).cumsum() 
array([0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3]) 
+1

Вау, это действительно здорово! – ForceBru

Смежные вопросы