浅析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字符串方法的简单使用
Jul 18 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
对python的文件内注释 help注释方法
May 23 Python
Python中函数参数匹配模型详解
Jun 09 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
pytorch数据预处理错误的解决
Feb 20 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
django使用多个数据库的方法实例
Mar 04 Python
用Python将GIF动图分解成多张静态图片
Jun 11 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执行速度全攻略(下)
2006/10/09 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
PHP常用的小程序代码段
2015/11/14 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
IE与firefox之jquery用法区别
2008/10/03 Javascript
JavaScript 继承详解 第一篇
2009/08/30 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
Python中的rjust()方法使用详解
2015/05/19 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
python基础教程项目三之万能的XML
2018/04/02 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
Python json转字典字符方法实例解析
2020/04/13 Python
Python实现粒子群算法的示例
2021/02/14 Python
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
宠物店的创业计划书范文
2014/01/11 职场文书
军训自我鉴定
2014/01/22 职场文书
数学教育专业求职信
2014/07/22 职场文书
旷课检讨书
2015/01/26 职场文书
答辩状格式范本
2015/05/22 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
致接力运动员加油稿
2015/07/21 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书