numpy教程:numpy中赋值和复制
在 Numpy 中,赋值和复制的区别在于,赋值(直接使用 =
操作符)只是创建了对原始数组的一个引用,而 复制(使用 copy()
方法)会创建一个新的数组,独立于原数组。
让我们通过代码来解释这一点。
示例代码:
import numpy as np
tang_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 赋值:tang_array2 是 tang_array 的引用
tang_array2 = tang_array
tang_array2[1, 1] = 10
# 打印结果
print("tang_array2:\n", tang_array2)
print("tang_array:\n", tang_array)
# 复制:tang_array3 是 tang_array 的独立副本
tang_array3 = tang_array.copy()
tang_array3[1, 1] = 1000
# 打印结果
print("tang_array3:\n", tang_array3)
print("tang_array:\n", tang_array)
输出结果:
tang_array2:
[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]
tang_array:
[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]
tang_array3:
[[ 1 2 3]
[ 4 1000 6]
[ 7 8 9]]
tang_array:
[[ 1 2 3]
[ 4 10 6]
[ 7 8 9]]
解析:
-
赋值(
tang_array2 = tang_array
):tang_array2
并没有创建一个新的数组,而是tang_array
的一个引用,它们指向同一个内存地址。- 当我们修改
tang_array2[1,1]
,tang_array
也会同步变化,因为它们共享同一块内存空间。
-
复制(
tang_array3 = tang_array.copy()
):tang_array3
创建了tang_array
的一个独立副本,二者完全独立,修改tang_array3
并不会影响tang_array
。- 当我们修改
tang_array3[1,1]
时,tang_array
保持不变。
总结:
- 赋值:仅仅创建了对同一数组的一个新引用,修改任何一个都会影响另一个。
- 复制:创建了一个新的、独立的数组,修改副本不会影响原始数组。
原文地址:https://blog.csdn.net/sunyuhua_keyboard/article/details/142988110
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!