浅析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中操作字典之fromkeys()方法的使用
May 21 Python
python对DICOM图像的读取方法详解
Jul 17 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
浅谈Python基础—判断和循环
Mar 22 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
Python爬虫 urllib2的使用方法详解
Sep 23 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
Pyqt5自适应布局实例
Dec 13 Python
python读取raw binary图片并提取统计信息的实例
Jan 09 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
简单了解python关键字global nonlocal区别
Sep 21 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中的Session和Cookie
2013/06/21 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
剖析Angular Component的源码示例
2018/03/23 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
python检查URL是否正常访问的小技巧
2017/02/25 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
python 字段拆分详解
2019/12/17 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
python 如何对logging日志封装
2020/12/02 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
一些.net面试题
2014/10/06 面试题
工程监理应届生求职信
2013/11/09 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
银行自荐信怎么写
2015/03/05 职场文书
销售督导岗位职责
2015/04/10 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
如何解决php-fpm启动不了问题
2021/11/17 PHP
nginx内存池源码解析
2021/11/20 Servers
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技