scipy.ndimage.label
を使用する大きな配列(3000 x 3000)で作業しています。戻り値は、3403個のラベルとラベル付き配列です。私はこれらのラベルのインデックスを、例えば、ラベル1については、ラベル付き配列の行と列を知っておく必要があります。 だから、基本的にこのScipyでラベル付けされた配列からnp.whereから離れたインデックスの計算が速くなります
a[0] = array([[1, 1, 0, 0],
[1, 1, 0, 2],
[0, 0, 0, 2],
[3, 3, 0, 0]])
indices = [np.where(a[0]==t+1) for t in range(a[1])] #where a[1] = 3 is number of labels.
print indices
[(array([0, 0, 1, 1]), array([0, 1, 0, 1])), (array([1, 2]), array([3, 3])), (array([3, 3]), array([0, 1]))]
ように、私は上記のように、すべての3403枚のラベルのためのインデックスのリストを作成したいと思います。上記の方法は遅いようです。私はジェネレータを使ってみましたが、改善があるようには見えません。
効率的な方法はありますか?
私たちにあなたの仕事のルーピーソリューションを教えてください。 – Divakar
@Divakar indices = m [0]がラベル付き配列であり、m [1]がラベル数(3403)である場合、範囲[m [1]]のtの[np.where(m [0] == t + 1)ここに)。 – Gargantua89
質問に追加してください。サンプルデータも見ていただければ幸いです。 – Divakar