浅析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绘制MySQL数据图实现数据可视化
Mar 30 Python
为Python的web框架编写前端模版的教程
Apr 30 Python
Python正规则表达式学习指南
Aug 02 Python
python executemany的使用及注意事项
Mar 13 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
django 将model转换为字典的方法示例
Oct 16 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
用python实现刷点击率的示例代码
Feb 21 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
Python函数的默认参数设计示例详解
Dec 01 Python
keras中的History对象用法
Jun 19 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 && 逻辑与运算符使用说明
2010/03/04 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
python的类变量和成员变量用法实例教程
2014/08/25 Python
python的socket编程入门
2018/01/29 Python
python针对excel的操作技巧
2018/03/13 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
python与字符编码问题
2019/05/24 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
Android面试题附答案
2014/12/08 面试题
如何写一封打动人心的求职信
2014/02/17 职场文书
《猫》教学反思
2014/02/26 职场文书
离婚协议书范文2014
2014/10/16 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
flex布局中使用flex-wrap实现换行的项目实践
2022/06/21 HTML / CSS