浅析NumPy 切片和索引


Posted in Python onSeptember 02, 2020

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。

ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

import numpy as np
 
a = np.arange(10)
s = slice(2,7,2)  # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])

输出结果为:

[2 4 6]

以上实例中,我们首先通过 arange() 函数创建 ndarray 对象。 然后,分别设置起始,终止和步长的参数为 2,7 和 2。

我们也可以通过冒号分隔切片参数 start:stop:step 来进行切片操作:

import numpy as np
 
a = np.arange(10) 
b = a[2:7:2]  # 从索引 2 开始到索引 7 停止,间隔为 2
print(b)

输出结果为:

[2 4 6]

冒号 : 的解释:如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。如果为 [2:],表示从该索引开始以后的所有项都将被提取。如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。

import numpy as np
 
a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
b = a[5] 
print(b)

输出结果为:

5

import numpy as np
 
a = np.arange(10)
print(a[2:])

输出结果为:

[2 3 4 5 6 7 8 9]

import numpy as np
 
a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
print(a[2:5])

输出结果为:

[2 3 4]

多维数组同样适用上述索引提取方法:

import numpy as np
 
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a)
# 从某个索引处开始切割
print('从数组索引 a[1:] 处开始切割')
print(a[1:])

输出结果为:

[[1 2 3]
[3 4 5]
[4 5 6]]
从数组索引 a[1:] 处开始切割
[[3 4 5]
[4 5 6]]

切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的 ndarray。

import numpy as np
 
a = np.array([[1,2,3],[3,4,5],[4,5,6]]) 
print (a[...,1])  # 第2列元素
print (a[1,...])  # 第2行元素
print (a[...,1:]) # 第2列及剩下的所有元素

输出结果为:

[2 4 5]
[3 4 5]
[[2 3]
[4 5]
[5 6]]

以上就是浅析NumPy 切片和索引的详细内容,更多关于NumPy 切片和索引的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
Python中文件的读取和写入操作
Apr 27 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
查看Django和flask版本的方法
May 14 Python
Python查看微信撤回消息代码
Jun 07 Python
解决PyCharm import torch包失败的问题
Oct 13 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
python 日志 logging模块详细解析
Mar 31 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
详解Python 函数参数的拆解
Sep 02 #Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 #Python
python 常用日期处理-- datetime 模块的使用
Sep 02 #Python
详解Python中的路径问题
Sep 02 #Python
python dict如何定义
Sep 02 #Python
python基本算法之实现归并排序(Merge sort)
Sep 01 #Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 #Python
You might like
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
简单的php购物车代码
2020/06/05 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
原生JS实现无缝轮播图片
2020/06/24 Javascript
Python os模块介绍
2014/11/30 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Python pip使用超时问题解决方案
2020/08/03 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
应届生的求职推荐信范文
2013/11/30 职场文书
哈理工毕业生的求职信
2013/12/22 职场文书
自我反省检讨书
2014/01/23 职场文书
优秀员工获奖感言
2014/03/01 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
公安学专业求职信
2014/07/27 职场文书
党章学习心得体会2016
2016/01/14 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
讲解Python实例练习逆序输出字符串
2022/05/06 Python