参考:
Python中的特殊索引方式
以a = [1,2,3,4,5,6,7,8]
为例
- [- n],倒着数第n个元素
- [-1],最后一个元素
- 同样的[-2]表示倒数第二个元素。
- [n : m],从第n项到第m-1项(前闭后开)
- [:-1],从第一项到倒数第二项
- [:5],从第1个到第5个(idx从0开始)元素。
- [2:5],从第3项到第5项元素。
- [n : m : k],从第n项开始取,每隔k个取一项,截止到第m-1项(前闭后开),当k为正的时候起始索引应该小于结束索引;当k为负的时候起始索引应该大于结束索引,因为在倒序来看,首先是索引值大的被取到,然后才是索引值小的。
- [::-1],全列表倒序
- [4::-1],从第5项倒序取到第0项
逗号表示维度的分割线
- [n:m, j:k, g:h],第0维从n到m,第1维从j到k,第2维从g到h(均为前闭后开)
- [:,:,0]: 前两个维度全选,最后一个维度只取0号索引。
- […,-1]:…省略维度,表示前面所有维度
- […,::-1]: 对最后一个维度进行逆序。
- [:,::-1,:]:第二个维度逆序。
Tensor交换维度
transpose()
可以交换tensor的任意两个维度,但是该函数一次只有两个参数,即一次只能交换两个维度。
1 | import torch |
permute()
该函数可以随意交换任意维度,并且可以重新排列整合维度
1 | import torch |
Numpy交换维度
transpose()
1 | import numpy as np |
Numpy挤出维度
1 | x = np.arange(8).reshape(2, 4) |