1 对于Python的list,是没有copy操作的
a = [1,2,3,4]
b = a #b和a指向同一块内存
b = a[:] #切片操作的关系导致二者不是指向同一块内存
b = a[2:] #不是同一块内存
2 对于numpy.array
是存在copy操作的,不同的是,numpy array的切片操作使得得到的新的数组和原来的指向同一块内存,如果想要开辟一块新的内存,用copy()函数
a= np.array([1,2,3,4])
b = a[1:]
b[0] = 9
print a #[1,9,3,4]
a= np.array([1,2,3,4]) b = a[1:2] b[0] = 9 print a #[1,9,3,4]
a= np.array([1,2,3,4]) b = a[1] b = 9 print a #[1,2,3,4],这种情况有点特殊,此时b已经不是数组,这种情况不算
下面使用copy函数a= np.array([1,2,3,4]) b = a[1:].copy() b[0] = 9 print a #[1,2,3,4]
3 astype里面的copy(实验没看出啥效果,暂且不写了)