numpy 数组的切片

  索引

  •  没有冒号“:”的,表示索引
>>> a=np.arange(36)
>>> b=a.reshape(4,3,3)
>>> a[5]
5

 一维切片

  •  带冒号“:”的,是切片
  • 1、正数,数据是从左到右
  • 2、负数,数据是从右到左
>>> a[:5]
array([0, 1, 2, 3, 4])
>>> a[5:]
array([ 5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
       22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35])

2、“:5”,冒号在左边,数据从左边第一个数据开始,到索引5结束

       “5:”,冒号在右边,数据从索引6开始,到最后一个数结束


>>> a[5:20]
array([ 5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])

 “5:20”,数据从索引6开始,到索引20结束

>>> a[-1:]
array([35])
>>> a[-2:]
array([34, 35])
>>> a[:-3]
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32])

 -1:  ,从右边倒数第一个开始,到最后一个,(只有一个^_^)

-2:   ,从右边倒数第二个开始,到最后一个,共两个


>>> a[3:-2]
array([ 3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
       20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33])

3:-2,从索引4开始,到倒数第2个结束

PS:这不就是excel内的单元格引用吗?

二维切片

>>> c=a.reshape(6,6)
>>> c[:2]
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11]])
>>> c[:3]
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17]])

只有一个参数,默认就是对axis 0进行切片,axis 1 的数据是一个整体,没有被切

>>> c[:2,1]
array([1, 7])
>>> c[:3,2]
array([ 2,  8, 14])

[ ]中第二个非空,没带冒号,就是axis 0 切片,axis 1索引

>>> c[:3,:2]
array([[ 0,  1],
       [ 6,  7],
       [12, 13]])
>>> c[:2,:3]
array([[0, 1, 2],
       [6, 7, 8]])

二维数组中,[ ]中两个都有冒号,表示axis 0 切片,axis 1也是切片 

多维切片

一般先切出几个二维的数组,numpy中,高维在前,低维在后

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值