浅析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根据路径导入模块的方法
Sep 30 Python
Python写的英文字符大小写转换代码示例
Mar 06 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
python解决字符串倒序输出的问题
Jun 25 Python
Django中使用Celery的方法示例
Nov 29 Python
python requests.post带head和body的实例
Jan 02 Python
python读取Kafka实例
Dec 23 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
May 18 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
python 密码学示例——凯撒密码的实现
Sep 21 Python
python matplotlib绘制三维图的示例
Sep 24 Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 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计算多维数组中所有值总和的方法
2015/06/24 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
flash 得到自身url参数的代码
2009/11/15 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
详解JS函数stack size计算方法
2018/06/18 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
Python使用MD5加密字符串示例
2014/08/22 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
python SVD压缩图像的实现代码
2019/11/05 Python
python中shell执行知识点
2020/05/06 Python
浅析Python __name__ 是什么
2020/07/07 Python
重构Python代码的六个实例
2020/11/25 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
C#怎么让一个窗口居中显示?
2015/10/20 面试题
小学生安全演讲稿
2014/04/25 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers