2017-01-12 11 views
1

小さな値の異なる範囲の2dのnumpy配列を持っています。私はランダムなインデックスを取得したいが、特定の値を持つ。たとえば、これが配列であるとします。特定の値を持つnumpy配列のランダムな項目のインデックスを取得します。

arr = [[1,2,1,1,3], 
     [4,3,4,1,1], 
     [2,3,1,2,1], 
     [1,2,1,1,2], 
     [3,1,3,4,2]] 

任意の値のランダムなインデックス、たとえば(2,2)が必要です。私がこれまでにこれを行うことができる唯一の方法は、任意のインデックスを取り、必要な値が含まれているかどうかを確認し、そうでない場合は再描画することです。上記の例ではこれは問題ありませんが、大きな配列から多くのランダムなインデックスを取得する必要があります。

私が記述している手順の方法やアルゴリズムはありますか?

これの適用は、分類された画像のランダムなピクセルを提供して精度評価を行うことである。

+1

'np.argwhere(== 1 ARR)'? – Divakar

答えて

4

あなたがランダムに1を選ぶnp.argwhere結果から座標、numpy.arrayにあなたのリストを変換:

import numpy as np 
import random 
random.choice(np.argwhere(np.array(arr)==value)) 
関連する問題