説明を簡単にするために、2 次元の numpy 配列を使用します (私の問題では 3 次元配列を使用しています)。
私は 2 つの配列を持っています。1 つは、それらの特定の座標で何かが発生する可能性を記録します。もう 1 つの配列は、事前に定義された半径内の中心点の周りの最初の配列の値を下げるために使用される、事前に生成された行列です。
最初のマトリックス (以降、A) のポイントを自動的に選択し、プログラムが以前に選択したポイントに近すぎる別のポイントを選択しないようにしたいと考えています。そのため、選択したポイントの周囲の値を、そのポイントからの距離に関連させて乗算したいと考えています。
例えば:
マトリックス A:
[[0, 0, 0, 0, 0, 0],
[0, 1, 2, 2, 1, 0],
[0, 2, 4, 4, 2, 0],
[0, 2, 4, 4, 2, 0],
[0, 1, 2, 2, 1, 0],
[0, 0, 0, 0, 0, 0]]
マトリックス B:
[[ 1, 0.5, 1 ],
[0.5, 0, 0.5],
[ 1, 0.5, 1 ]]
ここで、インデックス [2, 1] が注目点として選択されたとします。B は A と乗算されますが、[2, 1] 付近の 3*3 の値のみが乗算されます。
結果:
[[0, 0, 0, 0, 0, 0],
[0, 0.5, 0, 1, 1, 0],
[0, 2, 2, 4, 2, 0],
[0, 2, 4, 4, 2, 0],
[0, 1, 2, 2, 1, 0],
[0, 0, 0, 0, 0, 0]]
これにより、[2, 1] 付近のポイントは、関心のあるポイントとして選択するのに十分な価値がないという結果になるはずです。条件がとにかく選択されるほど高い場合を除き、乗算が行われます。
今、私はこの特定の乗算を実行する方法を理解できないようです. numpy.multiply()
Bを繰り返して、マトリックスA全体に適用されるようにしますが、Aのごく一部にのみ適用したい.
別のオプションは、マトリックス A の影響を受けるセクションをループすることですが、これには非常に時間がかかります (特に 3 次元マトリックスでは)。
つまり、最後に乗算結果を合計せずに畳み込みフィルターを適用したいのですが、それらを畳み込み行列 (A) の基になる値に適用します。
この問題に関する洞察をいただければ幸いです。