numpy.arrayなどではなく、単純なリスト(list=[][])があります。このlistのある範囲において、ある数字が格納されているインデックスを、新たなリストに格納したいです。
2100×4600の行列を格納したlist[y][x]の32行から68行まで、2列目から8列目までの範囲の中で0.4が含まれているインデックスを、新たなリストにind=[x,y,x,y,x,y…]と格納したいです。現在はチェックのために(68-32)×(8-2)要素ですが、今後は125万要素の範囲を5箇所ほど設けて行いたいと考えています。
2100×4600の全てから0.4が含まているインデックスを見つけるコードは下記の様に書けました。
python
1ind=[] 2for y, row in enumerate(list): 3 for i in range(int((sum(len(v) for v in list))/len(list))): 4 try: 5 ind.append(row.index(0.4)) 6 ind.append(y) 7 break 8 except ValueError: 9 pass
上記のプログラムを回すと処理に10分ほどかかり、これ以上、処理に時間がかるることはできれば避けたいです。そんため上記のプログラムで所得したインデックスリストから、範囲以外の物を削除していくというのは、極力避けたいです。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー