Numpy 数组赋值与复制
简介
在处理 Numpy 数组时,至关重要了解分配如何影响数据。本文探讨了三种赋值方法之间的差异:B = A、B[:] = A 和 numpy.copy(B, A),解决何时分配额外内存以及何时不分配额外内存的问题。
B = A
此赋值只是将新名称 (B) 绑定到现有 Numpy 对象 (A)。两个名称都引用同一个对象,因此对其中一个名称的任何就地修改都会反映在另一个名称中。没有分配额外的内存。
B[:] = A(相当于 B[:]=A[:])
此操作从 A 复制值放入现有数组 B 中。B 和 A 的形状必须匹配。没有分配额外的内存,因为现有的 B 数组被重用。
numpy.copy(B, A)
此语法不正确。正确的语法是 B = numpy.copy(A),它创建一个包含 A 副本的新数组。原始 B 数组不会被重用,因此在复制数据时会分配额外的内存。
numpy.copyto(B, A)
此赋值等效于 B[:] = A。它将值从 A 复制到 B,覆盖其现有数据。如果B中有足够的空间,则不分配额外的内存;否则,将创建一个新数组并分配额外的内存。
以上是了解 Numpy 数组分配:何时分配新内存?的详细内容。更多信息请关注PHP中文网其他相关文章!