在 Python 中,copy
方法通常用于创建一个对象的副本。在你的代码中,img = image_array.copy()
的作用是创建 image_array
的一个副本,并将其赋值给 img
变量。
这是一个深复制(deep copy)的例子,意味着 img
和 image_array
将是两个独立的对象,修改 img
不会影响 image_array
,反之亦然。
具体解释
创建副本:
img = image_array.copy()
这行代码将
image_array
的内容复制到新的对象img
中。两者内容相同,但内存中的存储位置不同。为什么使用
copy
:
使用copy
的主要目的是避免直接引用同一个对象。如果你只是直接赋值(例如img = image_array
),那么img
和image_array
将引用同一个对象,任何对img
的修改都会直接影响image_array
。示例代码:
import numpy as np # 创建一个示例数组 image_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 创建一个副本 img = image_array.copy() # 修改副本 img[0, 0] = 99 # 打印原数组和副本 print("Original array:") print(image_array) print("Modified copy:") print(img)
输出:
Original array: [[1 2 3] [4 5 6] [7 8 9]] Modified copy: [[99 2 3] [ 4 5 6] [ 7 8 9]]
从输出可以看到,修改
img
并不会影响image_array
。