前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中numpy数组切片

Python中numpy数组切片

作者头像
狼啸风云
修改2022-09-02 20:20:32
3.1K0
修改2022-09-02 20:20:32
举报

1、基本概念

Python中符合切片并且常用的有:列表,字符串,元组。 下面那列表来说明,其他的也是一样的。 格式:[开头:结束:步长] 开头:当步长>0时,不写默认0。当步长<0时,不写默认-1 结束:当步长>0时,不写默认列表长度加一。当步长<0时,不写默认负的列表长度减一 步长:默认1,>0 是从左往右走,<0是从右往左走 遵循左闭右开原则,如:[0:9]等价于数学中的[0,9)

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
# 字符串中用法
str = 'python'
print(str[::])  # python
print(str[::1]) # python
print(str[::2]) # pto 从左往右数,数2步,取一个值
print(str[::-1]) # nohtyp 从右往左数,数1步,取一个值,即:取全部值
print(str[::-2]) # nhy 从右往左数,数2步,取一个值

# 列表中用法
list = [1, 2, 3, 4 , 5, 6]
print(list[::]) # [1, 2, 3, 4, 5, 6]
print(list[::1]) # [1, 2, 3, 4, 5, 6]
print(list[::2]) # [1, 3, 5]
print(list[::-1]) # [6, 5, 4, 3, 2, 1]
print(list[::-2]) # [6, 4, 2]

# [n::-1] 示例
# 先找下标值n,再翻转(从右到左)取值
str = 'python'
list = [1, 2, 3, 4 , 5, 6]
print(str[1::-1]) # yp 先找到下标1的值:y,从右往左取值:yp
print(str[2::-1]) # typ 先找到下标2的值:t,从右往左取值:typ
print(list[1::-1]) # [2, 1] 先找到下标1的值:2,从右往左取值:[2, 1]
print(list[2::-1]) # [3, 2, 1] 先找到下标2的值:3,从右往左取值:[3, 2, 1]

2、一维数组

代码语言:javascript
复制
通过冒号分隔切片参数 start:stop:step 来进行切片操作:

1、一个参数:a[i]

代码语言:javascript
复制
	如 [2],将返回与该索引相对应的单个元素。

2、两个参数:b=a[i:j]

代码语言:javascript
复制
	b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象
	i缺省时默认为0,即 a[:n] 代表列表中的第一项到第n项,相当于 a[0:n]
	j缺省时默认为len(alist),即a[m:] 代表列表中的第m+1项到最后一项,相当于a[m:5]
	当i,j都缺省时,a[:]就相当于完整复制a
在这里插入图片描述
在这里插入图片描述

3、三个参数:格式b = a[i:j:s]

代码语言:javascript
复制
这里的s表示步进,缺省为1.(-1时即翻转读取)
所以a[i:j:1]相当于a[i:j]
当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1
所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。所以你看到一个倒序的东东。
在这里插入图片描述
在这里插入图片描述

3、二维数组(逗号,)

X[n0,n1,n2]表示取三维数组,取N维数组则有N个参数,N-1个逗号分隔。

取元素 X[n0,n1]

这是最基本的情况,表示取 第0维 的第 n0 个元素,继续取 第1维 的第 n1个元素。如 X[2,2] 表示第0维第2个元素[20,21,22,23],然后取其第1维的第2个元素即 22;

切片 X[s0:e0,s1:e1]

这是最通用的切片操作,表示取 第0维 的第 s0 到 e0 个元素,继续取 第1维 的第 s1 到 e1 个元素(左闭右开)。如 X[1:3,1:3] 表示第0维第(1:3)个元素[[10,11,12,13],[20,21,22,23]],然后取其第1维的第(1:3)个元素即 [[11,12],[21,22]];

切片特殊情况 X[:e0,s1:]

特殊情况,即左边从0开始可以省略X[:e0,s1:e1],右边到结尾可以省略X[s0:,s1:e1],取某一维全部元素X[:,s1:e1],事实上和Python 的 序列切片规则是一样的。

常见的 X[:,0] 则表示 第0维取全部,第1维取0号元素;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码语言:javascript
复制
numpy的切片操作,一般结构如num[a:b,c:d],分析时以逗号为分隔符,
逗号之前为要取的num行的下标范围(a到b-1),逗号之后为要取的num列的下标范围(c到d-1);
前面是行索引,后面是列索引。
如果是这种num[:b,c:d],a的值未指定,那么a为最小值0;
如果是这种num[a:,c:d],b的值未指定,那么b为最大值;c、d的情况同理可得。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、基本概念
    • 2、一维数组
      • 3、二维数组(逗号,)
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档