各要素に2つのコンポーネントがある2次元配列であるnumpy配列'image'があります。これを、各要素に3つのコンポーネントがある別の2次元配列に変換したいと思います。最初の2つと最初の2つから計算された3つ目は、次のようになります。
for x in range(0, width):
for y in range(0, height):
horizontal, vertical = image[y, x]
annotated_image[y, x] = (horizontal, vertical, int(abs(horizontal) > 1.0 or abs(vertical) > 1.0))
このループは期待どおりに機能しますが、他のnumpy関数と比較すると非常に低速です。中サイズの画像の場合、これには許容できない30秒かかります。
同じ計算をより速く行う別の方法はありますか?元の画像配列を保持する必要はありません。