假設我有一個數(shù)組test = np.array([0,2,1,5,3,6,10,0,0,3,2,3,0,0,7,3,6,2,0,0,3,5,4,6])我想知道的是前一個值為零時下一個值不為零的次數(shù);所以對于上面的數(shù)組我應該有 4。我寫了一個函數(shù)來執(zhí)行此操作,但它的執(zhí)行速度非常慢。是否有任何我應該將其重新寫入的矢量化函數(shù)?def count_instance(array):
return int(array[0] > 0) + sum(int(array[i] > 0 and array[i-1] == 0) for i in range(1,array.shape[0]))
1 回答

慕田峪7331174
TA貢獻1828條經(jīng)驗 獲得超13個贊
帶切片的單線 -
((test[:-1]==0) & (test[1:]!=0)).sum()
重復使用同一個面具的另一種方式 -
m = test==0 ((m[:-1]) & (~m[1:])).sum()
添加回答
舉報
0/150
提交
取消