课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
10分钟

拷贝和视图

  1. 当处理ndarray时,它的数据存储区有时被拷贝,但有时并不被拷贝。有三种情况。
    • 完全不拷贝:简单的赋值操作并不拷贝ndarray的任何数据,这种情况下是新的变量引用ndarray对象(类似于列表的简单赋值)
    • 视图和浅拷贝:不同的ndarray可能共享相同的数据存储区。如ndarray.view()方法创建一个新的ndarray但是与旧ndarray共享相同的数据存储区。新创建的那个数组称作视图数组。
      • 对于视图数组,ndarray.base返回的是拥有数据存储区的那个底层ndarray。而非视图数组的ndarray.base返回None
      • ndarray.flags.owndata返回数组是否拥有基础数据
      • 对于数组的分片操作返回的是一个ndarray的视图。对数组的索引返回的不是视图,而是含有基础数据。
    • 深拷贝:ndarray.copy()操作会返回一个完全的拷贝,不仅拷贝ndarray也拷贝数据存储区。