コピーによる Numpy 配列の代入
はじめに
Numpy 配列を扱う場合、これは重要です割り当てがデータにどのような影響を与えるかを理解するため。この記事では、B = A、B[:] = A、numpy.copy(B, A) の 3 つの割り当て方法の違いについて説明し、追加メモリが割り当てられる場合と割り当てられない場合について説明します。
B = A
この割り当ては、新しい名前 (B) を既存の Numpy オブジェクト (A) にバインドするだけです。どちらの名前も同じオブジェクトを参照しているため、一方に対するインプレース変更はもう一方にも反映されます。追加のメモリは割り当てられません。
B[:] = A (B[:]=A[:] と同等)
この操作は A から値をコピーします。 B と A の形状は一致する必要があります。既存の B 配列が再利用されるため、追加のメモリは割り当てられません。
numpy.copy(B, A)
この構文は正しくありません。正しい構文は B = numpy.copy(A) です。これは、A のコピーを含む新しい配列を作成します。元の B 配列は再利用されないため、データのコピー中に追加のメモリが割り当てられます。
numpy.copyto(B, A)
この代入は B[:] = A と同等です。値を A から B にコピーし、既存のデータを上書きします。 B に十分なスペースがある場合、追加のメモリは割り当てられません。それ以外の場合は、新しい配列が作成され、追加のメモリが割り当てられます。
以上がNumpy 配列の割り当てを理解する: 新しいメモリはいつ割り当てられるのか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。