Numpy:复制理解 b = ab = a.view()d = a.copy()
Posted wodexk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy:复制理解 b = ab = a.view()d = a.copy()相关的知识,希望对你有一定的参考价值。
一、复制形式 1:b = a 用等号(=)赋值,内存一样,a变化 ,b也会变化
import numpy as np a = np.arange(12) b = a print(b is a) # 返回 True b.shape = (3,4) print ("a.shape=",a.shape) # a.shape= (3, 4) print (id(a)) # 2493855732640 print (id(b)) # 2493855732640
二、复制形式 2:c = a.view()进行复制,a和c的内存位置一样,c的值改变a也会对应改变,但c结构变化,a不会变化
import numpy as np c = a.view() # 将 a 复制给 c print(c is a) print("c=",c) c.shape = (2,6) # 改变 c 的结构为2行6列,看 a 是否会变化 print("c.shape=",c.shape) print ("a.shape=",a.shape) c[0,4] = 1234 # 改变 矩阵c 第0行4列的值,看 a 的值是否会变化 print("c=",c) print("a=",a) print (id(a)) # 2493855144416 print (id(b)) # 2493855144416
结果图:
三、复制形式 3:d = a.copy() ,d和a的内存地址不一样,当 d 数值改变时,a 不会改变
import numpy as np d = a.copy() print(d is a) # False d[0,0] = 9999 print (d) print (a) print(id(d)) # 2493855735440 print(id(a)) # 2493855732640
结果图:
以上是关于Numpy:复制理解 b = ab = a.view()d = a.copy()的主要内容,如果未能解决你的问题,请参考以下文章