Numpy 配列の割り当て: メモリ割り当ての違い
NumPy では、配列に値を割り当てる一般的な方法が 3 つあります。
B = A
B = A を使用する場合、新しい配列は作成されません。代わりに、新しい名前 (B) を既存の配列 (A) にバインドします。その結果、一方の配列に加えられた変更はもう一方の配列にも反映されます。
B[:] = A
この構文は、次の条件を備えた新しい配列 B を作成します。 A と同じ次元と値。元の配列 A は変更されません。このメソッドは、numpy.copy.
numpy.copy(B, A)
に比べて必要なメモリ割り当てが少なくなります。このメソッドは、あなたが書いたように正当ではありません。 B = numpy.copy(A) である必要があります。 numpy.copy は、A と同じ次元と値を持つ新しい配列 B を作成します。この方法では、元の配列からデータの物理コピーを個別に作成するため、B[:] = A と比較してより多くのメモリ割り当てが必要になります。
追加メモリはいつ割り当てられますか?
追加メモリは、numpy.copy を使用して配列の新しい物理コピーを作成するときに割り当てられます。これは、コピーされたデータに新しい連続したメモリ ブロックが割り当てられるためです。
メモリが割り当てられない場合は?
B = A を使用するとメモリは割り当てられません。元の配列の名前を変更しているだけだからです。 B[:] = A を使用した場合も、元の配列と同じメモリ位置が再利用されるため、メモリは割り当てられません。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3