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则他们指向的地址不同用的值也不同。
网友评论