Numpy中的View()和copy()

view()

a=arange(0,10)

b = a.view()

        view()创建了数组a的一个视图,视图是数组的浅拷贝,具有与a相同的属性和数据的地址,共同引用同一块数据,修改b的属性,比如说将b的shape改为(2,5),这个操作只改变了对象b中的shape属性,对于a没有影响,数组中的数据物理上只有内存中一块连续的地址,但是怎么去解读这一块内容取决于数组对象的属性,属性决定了数组的形式,ndim决定了数组的维数,shape决定了数组每一维当中有多少个元素,stride决定了当前维度中取得下一个元素所需要跨过的字节数(偏移量),定义不同的属性就能将同一块内存解读为不同类型的数组,取数组中的元素的过程如下,不管a的存储顺序是什么样的(行有限or列优先),print(a)其实就是相当于按照人对于数组的认识来遍历这一块内存:

用c语言描述的话相当于
a[i][j][k]  ~  *(*(*(a + i * strides[0]) + j * strides[1]) + k * strides[2])

https://blog.csdn.net/qq_40206371/article/details/121922643

Python numpy视图与副本_python_脚本之家 (jb51.net)

详解python中的 is 操作符_python_脚本之家 (jb51.net)

python numpy数组复制使用实例解析_python_脚本之家 (jb51.net)

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 创建ndarray数组: np.array()、np.zeros()、np.ones()、np.full()、np.arange()、np.linspace()、np.random.rand()、np.random.randn()、np.random.randint() 2. 数组属性: ndarray.shape、ndarray.dtype、ndarray.ndim、ndarray.size、ndarray.itemsize、ndarray.nbytes 3. 数组索引和切片: ndarray[index]、ndarray[start:end]、ndarray[start:end:step]、ndarray[condition]、ndarray[condition][condition]、ndarray[condition & condition]、ndarray[condition | condition] 4. 数组运算: ndarray +、ndarray -、ndarray *、ndarray /、ndarray //、ndarray %、ndarray **、ndarray +=、ndarray -=、ndarray *=、ndarray /=、ndarray //=、ndarray %=、ndarray **= 5. 数组函数: np.sort()、np.argsort()、np.concatenate()、np.split()、np.vstack()、np.hstack()、np.transpose()、np.dot()、np.sum()、np.mean()、np.std()、np.max()、np.min()、np.exp()、np.log()、np.power()、np.clip()、np.where()、np.unique()、np.save()、np.load()、np.savetxt()、np.loadtxt() 6. 数组广播: ndarray + scalar、ndarray + ndarray、ndarray * scalar、ndarray * ndarray 7. 数组复制: ndarray.copy()、ndarray.view()、ndarray.ravel()、ndarray.flatten()、ndarray.resize()、ndarray.transpose()、ndarray.swapaxes()、ndarray.squeeze()、ndarray.repeat() 8. 数组比较: ndarray ==、ndarray !=、ndarray >、ndarray >=、ndarray <、ndarray <=、np.array_equal() 9. 数组逻辑: np.logical_and()、np.logical_or()、np.logical_not()、np.logical_xor() 10. 数组迭代: for i in ndarray:、ndarray.flat、ndarray.flatten()、np.nditer()

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值