浅析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实现类的静态变量用法实例
May 08 Python
python登录豆瓣并发帖的方法
Jul 08 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Random 在 Python 中的使用方法
Aug 09 Python
python实现五子棋小游戏
Mar 25 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
python 三元运算符使用解析
Sep 16 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 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
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
2011/03/01 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
Python单链表简单实现代码
2016/04/27 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
试述DBMS的主要功能
2016/11/13 面试题
软件测试题目
2013/02/27 面试题
《小猫刮胡子》教学反思
2014/02/21 职场文书
社会实践活动总结范文
2014/07/03 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
感恩教育观后感
2015/06/17 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers