热线电话:13121318867

登录
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.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子