numpy的深浅拷贝与python list的深浅拷贝

2019-07-14  本文已影响0人  劲草浅躬行

numpy中array数据类型的转置(transpose)

arr=np.arange(16).reshape(2,2,4)
arr2=arr.copy() #深拷贝
print(arr)
arr3=arr.transpose((1,0,2)) #arr.transposse并不会改变arr本身的值,返回值是变了的
print(arr3)

arr4=arr2.swapaxes(0,1) #同arr2.transpose(1,0,2)。并且也不改变arr2的值。返回新的值方便连起来
print(arr2)
print(arr4)

numpy array的深浅拷贝 & python list的深浅拷贝

  1. python list


  1. numpy array


    在这里插入图片描述

    数组切片是原始数组的视图,这意味着数据不会被复制,视图上的任何修改都会被直接反映到源数组上.
    array1,array2,array3,array4实际指向同一个内存值,任意修改其中的一个变量,其他变量值都会被修改。
    若想要得到的是ndarray切片的一份副本而非视图,就需要显式的进行复制操作函数copy()
    array5=array1.copy() #对原始的array1的复制
    array6=array1[1:4].copy() #对切片array1[1:4]的复制
    那么,修改array5或array6,就不会影响array1。

上一篇 下一篇

猜你喜欢

热点阅读