IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【Python】[…,0,0]和[:,0,0]是什么意思呢 -> 正文阅读

[人工智能]【Python】[…,0,0]和[:,0,0]是什么意思呢

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

下面举个例子来讲:

image-20220428105428486

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

1、[:]的含义

例1:

image-20220428110603164

输出是原数组:

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

image-20220428110726378

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

image-20220428111110923

例2:

image-20220428112041792

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

image-20220428111924542

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

image-20220428112145777

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


2、[...]的含义

例3:

image-20220428112926730

输出是原数组:

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

image-20220428112753105

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

image-20220428113122033

例4:

image-20220428113241411

输出是原数组:

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

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

image-20220428113452695

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


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

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

例6:

image-20220428140852082

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

上图第一个为例,[...,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)

image-20220428142907032

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

Tip 2:

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

image-20220428143300640


5、总结

简单来讲:

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

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

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

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


参考博客:

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

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

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


参考博客:

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

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:42:53  更:2022-04-30 08:45:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:25:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码