numpy 切片
numpy 中的切片与数组中的切片类似。
数组 [ 起始:终止:步长, 起始:终止:步长, ... ]
所有的切片操作(无论是步长为+的正序,还是步长为 - 的逆序)都是开始位置包含,结束位置不包含(终止位省略时则包含);可以借助于range函数辅助理解。
每一个维度之间采用 “ 逗号 ” 间隔,逗号之间的 ::则表示每一个维度的分割方式。
每一个维度的分割与数组的分割原理一致;
具体实现方式存在差异的是:在某个维度全部使用缺省值时可以用 “ . . .” 表示
值的省略说明
1)起始值:从首位算起
2)终止值:在末尾结束
3)步长值:默认为1
1 关于切片的基本操作方式
实例一:
a = np.arange(1,10) print(a) # [1 2 3 4 5 6 7 8 9] print(a[:3]) #[1 2 3] print(a[3:6]) #[4 5 6] print(a[6:]) #[7 8 9]
详细如下所示
实例二:
a = np.arange(1,10) print(a) # [1 2 3 4 5 6 7 8 9] print(a[-6:-3]) #[4 5 6] print(a[-6:-3:-1]) #[] print(a[-3:-6:-1]) #[7 6 5]
详细如下
当起止顺序反向时,输出为 空 [ ]
实例三:
import numpy as np a = np.arange(1,10) print(a) # [1 2 3 4 5 6 7 8 9] print(a[::-1]) #[9 8 7 6 5 4 3 2 1] print(a[:-4:-1]) #[9 8 7] print(a[-7::-1]) #[3 2 1] print(a[:]) #[1 2 3 4 5 6 7 8 9] print(a[...]) #[1 2 3 4 5 6 7 8 9] print(a[::3]) #[1 4 7] print(a[1::3]) #[2 5 8]
2 关于切片的高级操作
实例一:
import numpy as np b = np.arange(1,25).reshape(2,3,4) print(b) print('-----------') print(b[:,0,0]) #[ 1 13] # 第一个逗号是页的切片,也即页的切片从头到尾; # 第二个 0 表示行列式的第一行 # 第二个 0 表示行列式的第一列 # 所以每页取出第一行第一列元素,也即 1 13 两个元素
运行
[[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [[13 14 15 16] [17 18 19 20] [21 22 23 24]]] ----------- [ 1 13]
实例二:
b = np.arange(1,25).reshape(2,3,4) print(b) print('----------------') print(b[0,:,:]) #表示第 0 页,第 1 页的行取所有,第 1 页的列取所有 print('----------------') print(b[0,...]) #...表示第 0 页中的所有
运行
[[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [[13 14 15 16] [17 18 19 20] [21 22 23 24]]] ---------------- [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] ---------------- [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]]
实例三:
b = np.arange(1,25).reshape(2,3,4) print(b) print('---------') print(b[0,1,::2]) #5 7 # 表示第0页;第1行;从头到尾,步长为 2 ;
运行
[[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [[13 14 15 16] [17 18 19 20] [21 22 23 24]]] --------- [5 7]
实例四:
b = np.arange(1,25).reshape(2,3,4) print(b) print('---------') print(b[...,1]) #第一列
运行
[[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [[13 14 15 16] [17 18 19 20] [21 22 23 24]]] --------- [[ 2 6 10] [14 18 22]]
实验五:
b = np.arange(1,25).reshape(2,3,4) print(b) print('---------') print(b[:,1]) # 每一列的第一行(起始为0行), # 省略最后一个逗号等价于 print(b[:,1,])
运行
[[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [[13 14 15 16] [17 18 19 20] [21 22 23 24]]] --------- [[ 5 6 7 8] [17 18 19 20]]
实例六:
b = np.arange(1,25).reshape(2,3,4) print(b) print('---------') print(b[-1,1:,2:]) # 首不写表示从头开始,尾不写代表到尾结束。 # 第一个逗号:-1 表示末尾第一个, # 自左(前)到右(后)起于0,从右(后)到左(前)起于1。 # 第二个逗号:1:从第1行到末尾, # 第三个逗号:2:从第2行到末尾, # 最后选取数组中的一部分。
运行
[[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [[13 14 15 16] [17 18 19 20] [21 22 23 24]]] --------- [[19 20] [23 24]]
numpy 切片的更多相关文章
- NumPy 切片和索引
NumPy 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样. ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以 ...
- NumPy切片和索引
NumPy - 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样. 如前所述,ndarray对象中的元素遵循基于零的索引. 有三种可用的索引方 ...
- numpy切片和布尔型索引
numpy 标签(空格分隔): numpy 数据挖掘 切片 数组切片是原始数组的视图.这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上 In [16]: arr Out[16]: arr ...
- 5、numpy——切片和索引
1.一维数组 1.1 一维数组很简单,基本和列表一致.ndarray 数组可以基于 0 - n 的下标进行索引. 切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 切片和索引
ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组. import ...
- Numpy数组基本操作(数组索引,数组切片以及数组的形状,数组的拼接与分裂)
一:数组的属性 每个数组都有它的属性,可分为:ndim(数组的维度),shape(数组每个维度的大小),size(数组的总大小),dtype(数组数据的类型) 二:数组索引 和python列表一样,N ...
- NumPy的详细教程
原文 http://blog.csdn.net/lsjseu/article/details/20359201 主题 NumPy 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想 ...
- Numpy学习笔记(二)
(1)NumPy - 切片和索引 l ndarray对象中的元素遵循基于零的索引. 有三种可用的索引方法类型: 字段访问,基本切片和高级索引. l 基本切片 Python 中基本切片概念到 n 维 ...
- Python NumPy学习总结
一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...
随机推荐
- KafkaOffsetMonitor 安装
KafkaOffsetMonitor 安装 1,下载KafkaOffsetMonitor-assembly-0.2.0.jar 2,启动 步骤1:启动ZK(DN1-DN3节点) zkServer. ...
- Jackcard类似度和余弦类似度(向量空间模型)的java实现
版权声明:本文为博主原创文章,地址:http://blog.csdn.net/napoay,转载请留言. 总结Jackcard类似度和余弦类似度. 一.集合的Jackcard类似度 1.1Jackca ...
- 【高德地图Android SDK】视频教学
前两天参加了高德在北航举办的公开课,感觉非常不错.完成老师布置的作业之后,还顺利地拿到了高德开发者认证证书!! 现在来跟大家分享一下,如何快速学习[高德地图Android SDK]的开发.一天包会!连 ...
- WinForm 之 程序启动不显示主窗体
在 WinForm 程序启动时,不显示主窗体的实现方法主要有以下5种,第五种最简单,而且效果也不错,第四种方法也值得推荐. 实例代码如下: //隐藏窗体的方法1/5:不指定任何窗体为主窗体 //注意: ...
- 跟我学AngularJS:全局变量设置之value vs constant vs rootscope vs 服务[转]
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文要讲讲Angular中value vs. constant以及全局变量的设置 本教程 ...
- anadroid环境搭建
近期配置android 开发环境时,在网上搜寻诸多资料.文字一大堆,最没有解决这个问题,以下我谈一下我的配置之路: 一.开发环境需求原始资源: 1. jdk(java api):因为如今android ...
- ES6学习笔记五:Promise异步任务
一:Promise对象 Promise对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和Rejected(已失败). 二:创建与使用 v ...
- 索引唯一性扫描(INDEX UNIQUE SCAN)
索引唯一性扫描(INDEX UNIQUE SCAN)是针对唯一性索引(UNIQUE INDEX)的扫描,它仅仅适用于where条件里是等值查询的目标SQL.因为扫描的对象是唯一性索引,所 ...
- 使用jquery的ajax提交文件上传
以前的项目大多的使用jquery的插件来进行文件上传,对于就只引用jquery而不使用插件来上传文件之前未有写过,最近项目里有写到和用到,就记录一下,以后方便查找. 提示:存在浏览器皆容问题,谨慎使用 ...
- Dom4j操作XML实战,解析和插入XML实例
本例子是用XML来代替数据库的,XML的每个节点代替数据库一行数据. 直说过程: XML文件结构:定义了一个名为:User.xml的文件: <?xml version="1.0&quo ...