对Numpy切片的认识

切片

冒号 :

  • 一维数组
  1. 如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。
  2. 如果为 [2:],表示从该索引开始以后的所有项都将被提取。
  3. 如果使用了两个参数,如 [2:8],那么则提取两个索引(不包括停止索引)之间的项
  • 多维数组
    多维数组索引结果可能会同样是一个多维数组

数组切片不会复制内部数组数据生成一个副本,只会生成原始数据的新视图,这点与 python 不同。

视图:当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。

python的 list 的切片返回是原数据的副本,即开辟了一个新的内存地址储存数据,因此修改切片出来的结果,原数据并不会发生改变。
而numpy 以效率为主,所以 numpy 的切片返回的是原数据的视图,即不会创建新的内存地址,而是对原数据内存地址的引用。所以对numpy 切片结果进行修改会发现,原数据也一起发生了改变。

注意:numpy 中所有的运算操作符都不会为数组创建副本

参考

Python中numpy数组切片:print(a[0::2])、a[::2]、[:,2]、[1:,-1:]、a[::-1]、[ : n]、[m : ]、[-1]、[:-1]、[1:]等的含义(详细)
numpy数组切片操作之[:,2]、[-1:,0:2]、[1:,-1:]等都是啥?
关于Numpy数组切片的整理与思考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值