2018-10-29
阅读量:
833
numpy数组的副本与视图
操作和修改数组时,他们的数据有时被复制到一个新的数组中有时候没有,这有点不太理解,什么时候是副本什么时候是视图呢?
为了节省计算机内存numpy 有视图与副本两种状态除非显示的调用copy()函数否则都是视图。
1.一点也没拷贝的状态(两个变量指向相同内存空间)
import numpy as np
a = np.arange(27)
b = a #并没有新的对象被创建,a和b只是相同ndarray对象的两个名字而已,下面用id()来验证一下

可见a和b指向同一个数据对象。
2.视图或浅拷贝
c = a.view()
以下可见c = a.view()创建了一个新的对象,两个对象共享相同的数据。

对象c和a都可以对数据的数值进行修改,但是c不能对shape属性进行修改


另外切片数据也会返回“视图”对象。
3.Deep Copy(深度复制)
d = a.copy()
这会创建一个全新的数据d,与a没有关系d不能修改a的任何值。
一、axis 函数怎么理解?
在numpy的许多函数中都有axis这么个参数怎么理解?
Axis参数决定一些计算规则的方向,如聚合类函数中的sum,可以根据axis的值来决定求和方向。0代表最外层括号的高维度方向以此类推,这里只有0,1,2三个维度,因此2代表最内层括号的维度,不同方向计算结果如下图所示








评论(0)


暂无数据
推荐帖子
0条评论
0条评论
1条评论