在NumPy中,可以使用`copy()`方法进行数组的浅复制,使用`deepcopy()`方法进行数组的深复制。
浅复制
浅复制只复制对象本身,而不复制嵌套的对象。对于Numpy数组来说,浅复制会创建一个新的数组对象,但数组中的元素仍然指向原始数据。如果对数组的元素进行修改,原始数组也会受到影响。
示例代码:
```python
import numpy as np
创建一个原始数组
arr = np.array([1, 2, 3, 4, 5])
使用copy()方法进行浅复制
shallow_copy = arr.copy()
修改复制后的数组
shallow_copy = 100
print("原始数组:", arr)
print("浅复制后的数组:", shallow_copy)
```
输出结果:
```
原始数组: [1 2 3 4 5]
浅复制后的数组: [100 2 3 4 5]
```
深复制
深复制会递归地复制所有嵌套对象,确保新数组与原始数组完全独立。
示例代码:
```python
import numpy as np
创建一个原始数组
arr = np.array([1, 2, [3, 4], 5])
使用deepcopy()方法进行深复制
deep_copy = np.deepcopy(arr)
修改复制后的数组中的嵌套对象
deep_copy = 100
print("原始数组:", arr)
print("深复制后的数组:", deep_copy)
```
输出结果:
```
原始数组: [1 2 [3 4] 5]
深复制后的数组: [1 2 [100 4] 5]
```
根据具体需求选择合适的复制方法,可以确保数据的安全性和完整性。