浅析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 相关文章推荐
跟老齐学Python之用Python计算
Sep 12 Python
Python的Django框架中的数据库配置指南
Jul 17 Python
Python批量更改文件名的实现方法
Oct 29 Python
opencv与numpy的图像基本操作
Mar 08 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
python框架flask表单实现详解
Nov 04 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
django-csrf使用和禁用方式
Mar 13 Python
能让Python提速超40倍的神器Cython详解
Jun 24 Python
python使用torch随机初始化参数
Mar 22 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连接mysql数据库代码
2009/03/10 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
IE bug table元素的innerHTML
2010/01/11 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
python条件和循环的使用方法
2013/11/01 Python
Python中@property的理解和使用示例
2019/06/11 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
Python hashlib模块的使用示例
2020/10/09 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
通用C#笔试题附答案
2016/11/26 面试题
简述安装Slackware Linux系统的过程
2012/01/12 面试题
11月升旗仪式讲话稿
2014/02/15 职场文书
经销商订货会主持词
2014/03/27 职场文书
网络技术专业求职信
2014/05/02 职场文书
生日庆典策划方案
2014/06/02 职场文书
片区教研活动总结
2014/07/02 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
保研推荐信范文
2015/03/25 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
Python实现双向链表
2022/05/25 Python