2016-08-18 29 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

相关问题