NumPy 视图或浅拷贝

2021-11-06 17:33 更新

不同的数组对象可以共享相同的数据,view方法创建一个查看相同数据的新数组对象。

  1. >>> c = a.view()
  2. >>> c is a
  3. False
  4. >>> c.base is a # c is a view of the data owned by a
  5. True
  6. >>> c.flags.owndata
  7. False
  8. >>>
  9. >>> c = c.reshape((2, 6)) # a's shape doesn't change
  10. >>> a.shape
  11. (3, 4)
  12. >>> c[0, 4] = 1234 # a's data changes
  13. >>> a
  14. array([[ 0, 1, 2, 3],
  15. [1234, 5, 6, 7],
  16. [ 8, 9, 10, 11]])

切片数组返回它的视图:

  1. >>> s = a[:, 1:3]
  2. >>> s[:] = 10 # s[:] is a view of s. Note the difference between s = 10 and s[:] = 10
  3. >>> a
  4. array([[ 0, 10, 10, 3],
  5. [1234, 10, 10, 7],
  6. [ 8, 10, 10, 11]])
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号