numpy 数组切片

切片

切片语法格式:[start: end: step]
切片操作,适用于numpy数组,列表,元组,字符串

1. index

在这里插入图片描述
见上图,索引的形式有两种,正向索引和负向索引。
正向索引:方向是从左到右,从下表0开始。
负向索引:方向是从右到左,从下表-1开始
step:当step>0时,从左到右,当step<0时,从右到左

2. 一维数组(冒号)

一维数组通过冒号分割数组,有以下三种情形:
情形一: a[i] 返回与该索引相对应的单个元素。

a = [1,2,3,4,5,6,7,8,9]
print(a[2]#3

情形二: [start: end: step](含start,不含end)

  1. step方向与索引方向要一致,否则会输出[]
  2. 当start缺省,表示取到端点位置,具体是“起始端点”还是“结束端点”要看step的值,当为正时,表示左边为起始端点,从左向右取;当为负数时,表示右边为起始端点,从右向左取。
  3. 当end缺省时,表示取到“终点”,具体终点是在左边还是右边,要看step的值是正数还是负数。step>0,终点是右,step<0,终点是左
  4. 决定切片方向是step的正负,无关索引正负
  • start>0, end>0
a[1:6] #[2, 3, 4, 5, 6]
a[1:6:-1] #[] step方向与索引方向不一致
a[:6:-1] #[9,8] step=-1,决定从右到左的输出方向,start缺省,则默认为-1
a[6::-1] #[7, 6, 5, 4, 3, 2, 1]
  • start>0, end<0
a[1:-6] #[2, 3]
a[1:-6:-1] #[]  step方向与索引方向不一致
a[3:-8:-1] #[4, 3]
a[3:-9] #[] step方向与索引方向不一致
  • start<0, end>0
a[-1:2:-1] #[9, 8, 7, 6, 5, 4]
  • start<0, end<0
a[-6::-1] #[4, 3, 2, 1] end=0
a[:-6]  #[1, 2, 3]
3. 二维数组/多维数组(逗号)

多维数组的切片,用逗号分隔每一维度。

import numpy as np

arr = np.arange(12).reshape(3,4)
print(arr[:,0])   #[0,4,8]
print(arr[:,:1])   #[[0],[4],[8]]

参考链接: link.
第一个是,指定了最后一列,也就是说,在二维数组里的一列,就是一维的啊。那么第二个,是从最后一列开始,不妨假设一下后面还有列,那么就应该是不止一列,对机器来说,就是二维的。机器肯定不知道什么时候是一维,什么时候是二维的,所以当你用到start和end的时候,那就当作是二维的了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值