python中的3种复制
2019-02-21 本文已影响0人
学习是什么能吃吗
a赋值给b:
a = numpy.arange(8)
b = a
b.shape = 2,4
print(b)
print(a is b)
b[0,1] = 565
print (a)
print (b)
print (id(a))
print (id(b))
结果在这里可以发现直接把a赋值给b,则a与b会指向同一个地址,同一个值。
a.view()赋值给b:
a = numpy.arange(8)
b = a.view()
b.shape = 2,4
print(a is b)
b[0,1] = 565
print (a)
print (b)
print (id(a))
print (id(b))
结果把a.view()赋值给b可以看出来他们是指向不同的地址但是共用同一套值
a.copy()赋值给b:
a = numpy.arange(8)
b = a.copy()
b.shape = 2,4
print(a is b)
b[0,1] = 565
print (a)
print (b)
print (id(a))
print (id(b))
结果用a.copy()赋值给b则他们指向的地址不同用的值也不同。