numpy に大きな 3 次元配列があります (サイズ 100x100x100 としましょう)。その一部 (要素の約 70%) を何度も繰り返し処理したいのですが、同じサイズのブール値行列があり、要素が操作を実行する必要があるかどうかを定義します。
私の現在の方法は、最初に、操作を行うすべての座標を含む形状 (N,3) の配列「座標」を作成し、次に
for i in np.arange(many_iterations):
for j in coords:
large_array[j] = do_something(large_array[tuple(j)])
実際には、配列全体を評価し、ブール配列をテストするためにループに追加の操作を含める方が良いでしょうか (真理値の評価は、1 回ではなく many_iterations 回行われることに注意してください)。私の考えでは、この場合の見返りは for ループを取り除くことです
large_array = do_something(large_array if condition True)
この場合、この最後の行はどのように機能するでしょうか?