2016-08-18 90 views
3

我有一個分散在各處的零的1d數組。想創建一個包含上次零點的位置的第二陣列,像這樣: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的功能或廣播伎倆要做到這一點,而無需使用一個for循環或其他迭代器?

回答

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

哇,這真的很酷! – ForceBru

相關問題