Python中List和NumPy中Array的拷贝方式及其区别

分类:知识百科 日期: 点击:0

Python中的List和NumPy中的Array是两种不同的数据结构,它们的拷贝方式也有所不同。

Python中的List拷贝

Python中的List可以使用简单的赋值语句来进行拷贝,即将一个List赋值给另一个List,如:

list_a = [1,2,3]
list_b = list_a

这样就完成了List的拷贝,但是这种方式只是完成了浅拷贝,也就是说list_b和list_a指向的是同一个内存地址,修改其中一个list,另一个list也会受到影响,如:

list_a = [1,2,3]
list_b = list_a
list_a.append(4)
print(list_b)
# 输出:[1,2,3,4]

可以看到,list_b也被修改了,如果要完成真正的拷贝,就需要使用切片操作,即:

list_a = [1,2,3]
list_b = list_a[:]

这样就完成了真正的拷贝,list_b和list_a指向的是不同的内存地址,修改其中一个list,另一个list不会受到影响,如:

list_a = [1,2,3]
list_b = list_a[:]
list_a.append(4)
print(list_b)
# 输出:[1,2,3]

NumPy中的Array拷贝

NumPy中的Array可以使用copy()函数来进行拷贝,如:

import numpy as np
array_a = np.array([1,2,3])
array_b = array_a.copy()

这样就完成了Array的拷贝,array_b和array_a指向的是不同的内存地址,修改其中一个Array,另一个Array不会受到影响,如:

import numpy as np
array_a = np.array([1,2,3])
array_b = array_a.copy()
array_a[0] = 4
print(array_b)
# 输出:[1 2 3]

两者拷贝的区别

  • Python中的List拷贝需要使用切片操作,而NumPy中的Array拷贝可以使用copy()函数。

  • Python中的List拷贝只能完成浅拷贝,而NumPy中的Array拷贝可以完成深拷贝。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。