重複の可能性:
Numpy/Python: for ループのない配列反復
サイズが 100x100 のマトリックスがあり、各ピクセルを直接隣接するピクセル (左、上、右、下) と比較し、現在のマトリックスまたは同じサイズの新しいマトリックスに対していくつかの操作を実行するとします。Python/Numpy のサンプル コードは次のようになります。
import numpy as np
my_matrix = np.random.rand(100,100)
new_matrix = np.array((100,100))
my_range = np.arange(1,99)
for i in my_range:
for j in my_range:
if my_matrix[i,j+1] > 0.5:
new_matrix[i,j+1] = 1
if my_matrix[i,j-1] > 0.5:
new_matrix[i,j-1] = 1
if my_matrix[i+1,j] > 0.5:
new_matrix[i+1,j] = 1
if my_matrix[i-1,j] > 0.5:
new_matrix[i-1,j] = 1
if my_matrix[i+1,j+1] > 0.5:
new_matrix[i+1,j+1] = 1
if my_matrix[i+1,j-1] > 0.5:
new_matrix[i+1,j-1] = 1
if my_matrix[i-1,j+1] > 0.5:
new_matrix[i-1,j+1] = 1
隣接するセルに足を踏み入れて、そこから開始して隣接するセルと比較したい場合、これは非常に厄介になる可能性があります...これをより効率的な方法で行う方法について提案はありますか? これは可能ですか?