在看pytorch代码时经常会看见[…,0,0][:,0,0]两种形式,但是他们代表什么呢?

下面举个例子来讲:

随机生成shape为[2,3,2,2]的数组,姑且看成2个batch,每个batch有3个通道,每个通道大小2*2。

1、[:]的含义

例1:

输出是原数组:

第一个结果:所有batch中,第0个通道中所有元素。

第二个结果:所有batch中,第0个通道,第1行的所有元素。

例2:

第一个结果:第0个batch中,所有通道的所有元素。

第二个结果:所有batch中,所有通道中,第1行的所有元素。

**结论:**结合例1和例2可以看出来,:可以代表的是某一个、单个维度所有的元素,查找元素与数组访问一致,从前往后查,后面无参数默认所有元素。


2、[...]的含义

例3:

输出是原数组:

第一个结果:所有batch中,所有通道中,所有行中,第0列的元素,同一通道中的元素组成一行。

第一个结果:所有batch中,所有通道中,所有行中,第1列的元素,同一通道中的元素组成一行。

例4:

输出是原数组:

第一个结果:所有batch中,所有通道中,第0行,第1列的元素。

第二个结果:所有batch中,所有通道中,第1行,第1列的元素。

例5:

输出是原数组:

**结论:**结合例3、4、5可以看出来,...可以代表多个、不同维度的元素,查找元素顺序可以看作从后向前找。


3、[...][:]等价关系

如果没有太明白没关系,看下面这个例子更为直观:

例6:

可以看出来...:是可以相互等价的:

上图第一个为例,[...,0][:,:,:,0],一个...可以代表三个:,同理,第二个[...,0,0][:,:,0,0],一个...可以代表两个:,所以说[...]代表了前面所有纬度的数据,而[:]只是代表一个纬度的数据。

另外,在另一个博主的博客中提到:

the x[…] = … modifies x in-place;

It’s like x[:] = … but works with arrays of any dimension (including 0d). In this context x isn’t just a number, it’s an array.

Slicing: Important use of Ellipsis (…) is in slicing higher-dimensional data structures.

在引用高维数组时,使用[...][:]引用更方便,确实如此。

4、Tips

Tip 1:

[...]只能在使用引用的时候出现一次,以下都是不可行的:

在这里是创建了一个高维数组:a = np.random.rand(3,3,3,3,3,3)

可以看到报错信息是IndexError: an index can only have a single ellipsis ('...'),意思是你只能有一个省略号。

Tip 2:

当然[...][:]是可以混合使用的,没有先后顺序:


5、总结

简单来讲:

一个[:]单纯的代表一个维度,在使用低维数组的时候使用比较灵活,查找元素从前向后;

一个[...]代表多个维度,多个维度指的是连续的维度,在使用高维数组的时候比较灵活,查找元素从后向前;

一个[...]相当于连续的多个[:]使用,但是一个[...]只能在一次引用当中使用一次;

[...]可以与多个[:]在引用中混合使用;


参考博客:

多个维度指的是连续的维度,在使用高维数组的时候比较灵活,查找元素从后向前;

一个[...]相当于连续的多个[:]使用,但是一个[...]只能在一次引用当中使用一次;

[...]可以与多个[:]在引用中混合使用;


参考博客:

python numpy 里面的[:, None]是个什么鬼?[…, None]呢?

【Python】[…,0,0]和[:,0,0]是什么意思呢相关推荐

  1. Python之NumPy(axis=0 与axis=1)区分

    Python之NumPy(axis=0 与axis=1)区分 转载于:https://www.cnblogs.com/greatljg/p/10802392.html

  2. wxpython图形_wxPython(Python的GUI图形库)v3.0.2.0免费版-独木成林

    wxPython(Python的GUI图形库) v3.0.2.0免费版 wxPython2.8-win32-ansi-py27 对应于32位 python 2.7版本. 简单例子: #!/usr/bi ...

  3. python chm模块_python3.7.0官方参考文档 最新api文档 chm

    python 3.7.0 帮助文档,Python 3.7.0 documentation python3.7.0原版官方文档 英文版,CHM格式.修正显示乱码.基于官方在线文档修正编译. 简单方便的c ...

  4. mae python实现_使用Python进行机器学习:从0到1,构建回归模型(附完整教程)

    摘要 在本文中,我将使用数据科学和Python来解释回归用例的主要步骤,从数据分析到理解模型输出. 我将介绍一些非常有用的Python代码,当你遇到相同的情况时,只需要复制,粘贴,运行,就能轻松使用. ...

  5. 微信跳一跳python自动代码解读1.0

    微信跳一跳 那个跳一跳python"外挂",有几个python文件,其中有一个是得到截图,然后鼠标在图片上点击两次,python窗口上会打印两次鼠标的位置,并且会跟上一行这两个点之 ...

  6. python打地鼠游戏代码_Python 0基础开发游戏:打地鼠(详细教程)VS code版本

    如果你没有任何编程经验,而且想尝试一下学习编程开发,这个系列教程一定适合你,它将带你学习最基本的Python语法,并让你掌握小游戏的开发技巧.你所需要的,就是付出一些时间和耐心来尝试这些代码和操作.文 ...

  7. 买《Python数据分析师:从0基础到数据分析达人》专题视频课程送纸质图书

    <Python从小白到大牛>纸质图书于2018年10月上市,为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院([Python数据分析师:从0基础到数据分析达人](https ...

  8. 从0.1加0.2不等于0.3谈Python浮点数的前世今生

    文章目录 1. 0.1加0.2不等于0.3? 2. 为什么要使用浮点数? 3. 浮点数的二进制和十进制是怎样转换的? 4. 如何实现0.1加0.2等于0.3? 1. 0.1加0.2不等于0.3? 什么 ...

  9. 如何用Python控制LEGO Wedo 2.0的电机

    乐高官方提供的编程工具都是图形化的,这篇文章分享下如何用Python来连接控制LEGO Wedo 2.0中提供的蓝牙主控设备和电机. 学习资源 网上有两篇很有用的文章: Controlling a W ...

  10. python第七关再来一盘_盘一盘 Python 系列 7 - PyEcharts (v1.0)

    原标题:盘一盘 Python 系列 7 - PyEcharts (v1.0) 本文含5835字,33图表截屏 建议阅读30分钟 0 引言 有读者说[ PyEcharts ]一贴里的图美如画,但是版本是 ...

最新文章

  1. C++中的private protected public区别
  2. static void SetSysClockTo72(void)的一些理解
  3. uiautomator2进阶
  4. 使用NSURLProtocol实现离线缓存
  5. python数组索引和切片_python numpy数组的索引和切片的操作方法
  6. linux的多任务 多进程,浅谈linux模拟多线程崩溃和多进程崩溃
  7. php artisan passport,API 认证解决方案:Laravel Passport
  8. 线程池的使用及ThreadPoolExecutor的分析(一)
  9. 已获千赞,从理论到实践!
  10. fatal error LNK1104: 无法打开***.exe的错误
  11. Java中的Thread.sleep()– Java线程睡眠
  12. 如何写一份交互说明文档
  13. 【AutoCAD】04.直线类命令
  14. 一条互联网广告多少钱?
  15. 2014年5月份第1周51Aspx源码发布详情
  16. error: C99 designator ‘personName’ outside aggregate initializer
  17. CSDN怎么下载文件
  18. 软件测试 - 功能测试Ⅱ
  19. 信息时代,书香更宜人
  20. 移动页面input手机键盘中的“搜索”按键

热门文章

  1. knockout框架
  2. C语言基础数学逻辑篇
  3. python pro practice
  4. Pr 微电影片头开场效果
  5. 记一次 Centos7 安装部署 gogs-v0.12.1
  6. matplotlib.pyplot.plot()参数详解、线形图、条形图、散点图、饼状图、画布大小、位置、颜色、标题、图例、坐标轴刻度设置 实例详解
  7. finally语句块一定执行吗?
  8. Ubunutu编译安装OpenCasCade找不到lXi的解决方案
  9. 如何使用蓝牙电子标签实现固定资产智能化管理
  10. PPP项目组基本解散