python三维数组切片_【NumPy学习指南】day4 多维数组的切片和索引

ndarray支持在多维数组上的切片操作。为了方便起见,我们可以用一个省略号(...)来

表示遍历剩下的维度。

(1)举例来说,我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组:>>>b=np.arange(24).reshape(2,3,4)

>>> b.shape

(2L, 3L, 4L)

>>> b

array([[[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]],

[[12, 13, 14, 15],

[16, 17, 18, 19],

[20, 21, 22, 23]]])

多维数组b中有0~23的整数,共24个元素,是一个2×3×4的三维数组。我们可以形象地把它看做一个两层楼建筑,每层楼有12个房间,并排列成3行4列。或者,我们也可以将其看成是电子表格中工作表(sheet)、行和列的关系。你可能已经猜到,reshape函数的作用是改变数组的“形状”,也就是改变数组的维度,其参数为一个正整数元组,分别指定数组在每个维度上的大小。如果指定的维度和数组的元素数目不相吻合,函数将抛出异常。

(2)我们可以用三维坐标来选定任意一个房间,即楼层、行号和列号。例如,选定第1层楼、第1行、第1列的房间(也可以说是第0层楼、第0行、第0列,这只是习惯问题),可以这样表示:>>>b[0,0,0]

0

(3)如果我们不关心楼层,也就是说要选取所有楼层的第1行、第1列的房间,那么可以将第1个下标用英文标点的冒号:来代替:>>>b[:,0,0]

array([0, 12])

>>>b[0]

array([[0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

我们还可以这样写,选取第1层楼的所有房间:>>>b[0,:,:]

array([[0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

多个冒号可以用一个省略号(...)来代替,因此上面的代码等价于:>>>b[0,...]array([[0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

进而可以选取第1层楼、第2排的所有房间:>>>b[0,1]

array([4,5, 6, 7])

(4) 再进一步,我们可以在上面的数组切片中间隔地选定元素:>>>b[0,1,::2]

array([4,6])

(5) 如果要选取所有楼层的位于第2列的房间,即不指定楼层和行号,用如下代码即可:>>>b[...,1]

array([[1, 5, 9],

[13, 17, 21]])

类似地,我们可以选取所有位于第2行的房间,而不指定楼层和列号:>>>b[:,1]

array([[4, 5, 6, 7],

[16, 17, 18, 19]])

如果要选取第1层楼的所有位于第2列的房间,在对应的两个维度上指定即可:>>>b[0,:,1]

array([1,5, 9])

(6)如果要选取第1层楼的最后一列的所有房间,使用如下代码:>>>b[0,:,-1]

array([3, 7, 11])

如果要反向选取第1层楼的最后一列的所有房间,使用如下代码:>>>b[0,::-1,-1]

array([11, 7, 3])

在该数组切片中间隔地选定元素:>>>b[0,::2,-1]

array([3, 11])

如果在多维数组中执行翻转一维数组的命令,将在最前面的维度上翻转元素的顺序,在我们

的例子中将把第1层楼和第2层楼的房间交换:>>>b[::-1]

array([[[12,13, 14, 15],

[16, 17, 18, 19],

[20, 21, 22, 23]],

[[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]]])

刚才做了些什么

我们用各种方法对一个NumPy多维数组进行了切片操作。

85dacd85c2687474703a2f2f7069632e6262732e70696e6767752e636f6d2f616c62756d2f3230313530352f33302f3233333735367371347170716b726773627935626c372e6a70677804e6d396.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统查看文章链接

x86讲解:80X86寄存器详解 - aitao - 博客园 计算机如何启动:计算机是如何启动的? - 阮一峰的网络日志 linux实验:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课操作系统原理与实践_Linux - 蓝桥云课

批量修改栏目名_Endnote中英文混排批量修改小技巧

来源:卓琳 赵一鸣 北医三院 临床流行病学和循证医学 如果参考文献量大,涉及多种类型和语言,手工附上参考文献非常低效,还是得借助文献管理软件。由于output style选择的不同,中文参考文献的书写格式有误,有…

python列表导出_python list格式数据excel导出方法

如下所示: # _*_ coding:utf-8 _*_ #----------------------------------------------- # import modules #----------------------------------------------- import os import xlwt import sys import types def set_style(name, height, bold False): style xl…

shiro 方法级别细粒度权限控制_Shiro的认证和权限控制

从类别上分,有两大类:- 认证:你是谁?–识别用户身份。- 授权:你能做什么?–限制用户使用的功能。权限的控制级别从控制级别(模型)上分:- URL级别-粗粒度- 方法级别-细粒度- 页面级别-自定义标签…

python运行外部程序_在Python中运行外部程序(可执行文件)?

在Python中运行外部程序(可执行文件)? 我刚刚开始研究Python,我一直在尝试从Python运行外部可执行文件。 我有一个用Fortran编写的程序的可执行文件。 假设可执行文件的名称是flow.exe。 我的可执行文件位于C:\Documents and Sett…

word里画的流程图怎么全选_怎么用word画流程图

word是我们最常用的文档编辑软件了,他除了可以制作文字图片的编辑之外,其实它还可以轻松制作出一些简单的流程图,那么又是如何操作的呢?让我们一起看下去吧!一、word画流程图虽说word不是专门使用来画流程图的&#xf…

python中值滤波去除椒盐噪声_Python实现图像去噪方式(中值去噪和均值去噪)

实现对图像进行简单的高斯去噪和椒盐去噪。 代码如下: import numpy as np from PIL import Image import matplotlib.pyplot as plt import random import scipy.misc import scipy.signal import scipy.ndimage from matplotlib.font_manager import FontProperti…

二次扩增产物条带弥散_PCR实验操作常见解决方法

1. cDNA产量的很低可能的原因:*RNA模板质量低*对mRNA浓度估计过高*反应体系中存在反转录酶抑制剂或反转录酶量不足*同位素磷32过期*反应体积过大,不应超过50μl2. 扩增产物在电泳分析时没有条带或条带很浅*常见的原因在于您的反应体系是PCR的反应体系而不…

java 关注公众号没有调接口_深入理解Java继承、封装、多态的实现原理

点击关注上方“Java技术江湖”,设为“置顶或星标”,第一时间送达技术干货。作者:黄小斜文章来源:微信公众号【Java技术江湖】目录从JVM结构开始谈多态JVM 的结构Java 的方法调用方式常量池(constant pool)图 2. 常量池各表的关系方…

wordpress友联_Wordpress 友情链接页面终极版 – Fatesinger

之前写过一篇带头像的友情链接页面,当时有朋友说怎么能支持分类,我让他仿照以前不带头像的旧方法修改下,以前旧方法是用SQL语句获取的分类,其实完全可以通过Wordpress 自带的函数来实现,原因你懂的。而且还有一部分朋友…

系统相机裁剪比例_如何正确设置相机:6个最常见的错误,你还在犯错吗?

你是否在摄影中出现这样的设置错误?查看相机的这6个设置,并按照以下自定义提示操作,以增强照片质量并提高专业摄影水平。1.白平衡绝大多数照片是在自动白平衡模式下拍摄的。这是一个简单的选择,在大多数情况下是合理的,但这不是1…

java 正则首位8或者9的8位数字_正则简单手机号和邮箱练习

正则表达式的组成规则在java中,正则表达式的编译是类java.util.regex.Pattern正则表达式的构造摘要1.字符x包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号的普通字符。比如之前的例子可以将[1-9][0-9]{4,12}改成1[0-9]{4,12}或者a[0-9]{4,12}此时就…

inputstreamreader 编码不完整_素材编码对剪辑效率的影响

这次说说在项目的剪辑阶段关于编码的一些注意事项。压缩编码会拖慢剪辑速度大多数中低端摄像机都使用其于时间压缩的编码来进行录制,也称为Long GOP压缩。这种编码对于缩小文件体积很有用,但是计算机不得不耗费更多的性能来进行剪辑。简单来讲&#xff0…

python定义三维数组不指定长度_插值/调整三维数组大小

ndimage.zoom 这可能是最好的方法,zoom method正是为这类任务而设计的。from scipy.ndimage import zoom new_array zoom(array, (0.5, 0.5, 2)) 按指定的因子更改每个维度中的大小。如果数组的原始形状是(40, 50, 60),那么新的数组将是(20, 25, 120)。…

django默认缓存是多大_Django之缓存 - osc_fd8vzgsi的个人空间 - OSCHINA - 中文开源技术交流社区...

一、缓存由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中&#xff0c…

mac xampp连接mysql数据库_请问在mac下xampp无法读取mysql的数据

报错信息如下:Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /Applications/XAMPP/xamppfiles/htdocs/test/db.class.php:51 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/test/db.class.php(31): ms_new_mysql->conn…

python调用shell脚本的参数_使用python执行shell脚本 并动态传参 及subprocess的使用详解

最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库subprocess这个模块可以非常方便的启动一个子进程,并且控制其输入和输出Class Popen(args&#xff0c…

mysql replication延迟_深入mysql主从复制延迟问题的详解

面试mysqldba的时候遇到一个题:描述msyql replication 机制的实现原理,如何在不停掉mysql主库的情况下,恢复数据不一致的slave的数据库节点?MySQL的复制(replication)是一个异步的复制,从一个MySQL instace(称之为Mast…

gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?

概念我从官网搜了一下,GitLab Runner 是一个开源项目, 它用来运行你定制的任务(jobs)并把结果返回给 GitLab。 GitLab Runner 配合GitLab CI(GitLab 内置的持续集成服务) 协调完成任务。gitlab想要了解 GitLab Runner之前,我们先要知道或者说…

mysql百万级去重_mysql优化小技巧之去除重复项(百万级数据)

mysql优化小技巧之去除重复项(百万级数据)发布时间:2018-06-11 11:54,浏览次数:482, 标签:mysql说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄…