浅析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 15 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
Python类的继承和多态代码详解
Dec 27 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
python逆序打印各位数字的方法
Jun 25 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
Python去除字符串前后空格的几种方法
Mar 04 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
Django 实现图片上传和下载功能
Dec 31 Python
Python结合百度语音识别实现实时翻译软件的实现
Jan 18 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
一个用于网络的工具函数库
2006/10/09 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python数组定义方法
2016/04/13 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
西雅图的买手店:Totokaelo
2019/10/19 全球购物
小学生爱国演讲稿
2014/04/25 职场文书
如何书写授权委托书?
2019/06/25 职场文书
2019年作为一名实习生的述职报告
2019/09/29 职场文书
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
vue 给数组添加新对象并赋值
2022/04/20 Vue.js
python 学习GCN图卷积神经网络
2022/05/11 Python