1
想將索引列表構建到2維bool_數組中,其中True。Python Numpy 2維數組迭代
import numpy
arr = numpy.zeros((6,6), numpy.bool_)
arr[2,3] = True
arr[5,1] = True
results1 = [[(x,y) for (y,cell) in enumerate(arr[x].flat) if cell] for x in xrange(6)]
results2 = [(x,y) for (y,cell) in enumerate(arr[x].flat) if cell for x in xrange(6)]
結果1:
[[], [], [(2, 3)], [], [], [(5, 1)]]
結果2是完全錯誤的
目標:
[(2, 3),(5, 1)]
沒有辦法做到這一點沒有事後壓扁列表,或者什麼更好的辦法一般這樣做?
哦,親愛的,沒有聽說過這一點。 zip(* numpy.where(arr))很好地工作。我會留下一段時間來聽取其他人是否有其他選擇。 – user1012037
'np.where()'帶有一個參數,相當於'np.nonzero()'。轉換爲OP的格式:'np.transpose(np.nonzero(a))',相當於'np.argwhere(a)'。 – jfs