目录
- 1. 按索引方式取数据
- 2. 以python切片方式取数据
- 3. 指定index取数据
- 4. ...代表除其前后指定维度外的所有维度
- 5. masked_select() 使用掩码选择元素
- 6. take 矩阵打平后选取
1. 按索引方式取数据
![pytorch索引和切片_第1张图片](http://img.e-com-net.com/image/info8/2a82e3f9f7f34f658ffc2f67545a835f.jpg)
a[0,0,2,4] 其中0,0,2,4是索引从0开始
2. 以python切片方式取数据
![pytorch索引和切片_第2张图片](http://img.e-com-net.com/image/info8/0a66fde0c31844f7a65ac784d1ca5c53.jpg)
b=4 索引是0, 1, 2 ,3 4张图片
c=3 索引是0,1,2
[:2] 0, 1不包括2
[1:] 1,2
[-1] 最后一个就是2
![pytorch索引和切片_第3张图片](http://img.e-com-net.com/image/info8/16239c7365da463f8aece7e0fefbf63d.jpg)
0:28:2-》0到28不包括28,每隔两个点采样一次
切片索引的几种方式总结
- : 全部
- n: 从n开始到末尾
- :n 从0开始到n-1
- s:e 从s开始到e-1
- startstep 从start开始到end-1,每隔step采样一次
3. 指定index取数据
index_select(dim, index)
index是torch.tensor([1,2])格式
![pytorch索引和切片_第4张图片](http://img.e-com-net.com/image/info8/222f42de21fa45b497823beb7e87e24e.jpg)
4. …代表除其前后指定维度外的所有维度
个人理解类似省略号,代替后边所有维度
![pytorch索引和切片_第5张图片](http://img.e-com-net.com/image/info8/c925c596c68f4c70ba6a42720cfd9355.jpg)
5. masked_select() 使用掩码选择元素
![pytorch索引和切片_第6张图片](http://img.e-com-net.com/image/info8/857a96ed4a044839b338ff5e23269e70.jpg)
6. take 矩阵打平后选取
![pytorch索引和切片_第7张图片](http://img.e-com-net.com/image/info8/769f14f8a3b547f6a887d916bf59cc48.jpg)
与index_select的区别是index_select第一个参数是dimension,而take是操作tensor的数据