我有一個2D布爾數組,如:NumPy的:快速計數2D布爾數組真實例項明智的
[[False, True, True],
[True, False, True],
[True, False, False],
[True, True, True]]
對於數組中的每一行,我要算真正的實例,並創建一個與原始數組具有相同形狀的新項目式數組,其中每個條目是該行中所有先前的True實例的總和。對於上面的例子,我所需的輸出是:
[[0, 0, 1],
[0, 1, 1],
[0, 1, 1],
[0, 1, 2]]
有沒有辦法在numpy的迅速做到這一點,而不是檢查每個項目在數組中,像這樣:
boolarr = np.array([[0, 1, 1], [1, 0, 1], [1, 0, 0], [1, 1, 1]], dtype=np.bool)
newarr = np.zeros(boolarr.shape)
for i, row in enumerate(boolarr):
for index, item in enumerate(row):
if item:
newarr[i][index+1:] += 1
我的陣列是大足夠的(40 x 1260)和速度是一個因素,因爲這需要重複進行很多次。
謝謝。
簡單,這就是我正在尋找的!謝謝 :) – MikeFenton