目前我有一個代碼檢查數組中的給定元素是否等於0,如果是,則將值設置爲'level'值(temp_board是2D numpy數組,indices_to_watch包含應該觀察的2D座標爲零)。Numpy masked array modification
indices_to_watch = [(0,1), (1,2)]
for index in indices_to_watch:
if temp_board[index] == 0:
temp_board[index] = level
我想這個轉換爲更numpy的類似方法(去掉了,並且只使用numpy的功能),以加快這。 這裏是我的嘗試:
masked = np.ma.array(temp_board, mask=(a!=0), hard_mask=True)
masked.put(indices_to_watch, level)
但不幸的是掩蓋陣列在做把()希望有一維的尺寸(完全陌生的!),有沒有更新是等於0,並有具體的數組元素的一些其他的方式指數?
或者,也許使用屏蔽陣列是不是要走的路?
謝謝:) 我試過numpy.where()但沒想到將它與set set intersection – 2010-02-23 12:27:41