python numpy数组复制使用实例解析
这篇文章主要介绍了pythonnumpy数组复制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在使用python时我们经常会处理数组,有的时候是复制有的时候不是,这里也是初学者最容易误解的地方,简单讲,可以分为下面三种情况:
不是复制的情况(NoCopyatAll)
importnumpyasnp a=np.arange(12)#a为一个序列 b=a#没有创建新的对象 print('a的shape为:',a.shape)#输出a的尺寸 print('b是a吗?',bisa)#ab为同一个对象的两个名字 b.shape=3,4#将b的shape改变 print('a的shape变为:',a.shape)#a的shanpe也跟着改变了
输出结果
a的shape为:(12,) b是a吗?True a的shape变为:(3,4)
查看或浅复制(VieworShallowCopy)
不同的数组对象可以分型相同的数据,view方法创建一个与原来数组相同的新对象
a=np.arange(12) c=a.view()#建立一个和a一样的c print('c未改变时a的shape为:',a.shape)#输出a的尺寸 print('c是a吗?',cisa) print('c是以a为基础建立的吗',c.baseisa) c.shape=3,4 print('c改变后a的shape为:',a.shape)
输出结果:
c是a吗?False c是以a为基础建立的吗True a的shape为:(12,) a的shape为:(12,)
深复制(DeepCopy)
这个时候d是a的复制,只是单纯的复制,两者没有一点关系
a=np.arange(12) d=a.copy()#建立一个和a一样的c print('d是a吗?',disa) print('d是以a为基础建立的吗',d.baseisa)
输出结果:
d是a吗?False d是以a为基础建立的吗False
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。