# Tensor Dimensions()-其他

## Tensor Dimensions()

``````t = torch.arange(72).reshape(2,3,3,4) # 初始化一个tensor

print("t--->", t)

index = torch.tensor([1, 0]) # 要选取数据的位置
print("index--->", index)

data0 = t.index_select(0, index) # 第一个参数:从第0维挑选， 第二个参数:从该维中挑选的位置
print("data0--->", data1)

data1 = t.index_select(1, index)
print("data1--->", data1)

data2 = t.index_select(2, index)
print("data2--->", data2)

data3 = t.index_select(3, index)
print("data3--->", data3)
``````

### output

``````t---> tensor([[[[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]],

[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]],

[[24, 25, 26, 27],
[28, 29, 30, 31],
[32, 33, 34, 35]]],

[[[36, 37, 38, 39],
[40, 41, 42, 43],
[44, 45, 46, 47]],

[[48, 49, 50, 51],
[52, 53, 54, 55],
[56, 57, 58, 59]],

[[60, 61, 62, 63],
[64, 65, 66, 67],
[68, 69, 70, 71]]]])
index---> tensor([1, 0])
data0---> tensor([[[[36, 37, 38, 39],
[40, 41, 42, 43],
[44, 45, 46, 47]],

[[48, 49, 50, 51],
[52, 53, 54, 55],
[56, 57, 58, 59]],

[[60, 61, 62, 63],
[64, 65, 66, 67],
[68, 69, 70, 71]]],

[[[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]],

[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]],

[[24, 25, 26, 27],
[28, 29, 30, 31],
[32, 33, 34, 35]]]])
data1---> tensor([[[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]],

[[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]]],

[[[48, 49, 50, 51],
[52, 53, 54, 55],
[56, 57, 58, 59]],

[[36, 37, 38, 39],
[40, 41, 42, 43],
[44, 45, 46, 47]]]])
data2---> tensor([[[[ 4,  5,  6,  7],
[ 0,  1,  2,  3]],

[[16, 17, 18, 19],
[12, 13, 14, 15]],

[[28, 29, 30, 31],
[24, 25, 26, 27]]],

[[[40, 41, 42, 43],
[36, 37, 38, 39]],

[[52, 53, 54, 55],
[48, 49, 50, 51]],

[[64, 65, 66, 67],
[60, 61, 62, 63]]]])
data3---> tensor([[[[ 1,  0],
[ 5,  4],
[ 9,  8]],

[[13, 12],
[17, 16],
[21, 20]],

[[25, 24],
[29, 28],
[33, 32]]],

[[[37, 36],
[41, 40],
[45, 44]],

[[49, 48],
[53, 52],
[57, 56]],

[[61, 60],
[65, 64],
[69, 68]]]])

``````
————————
``````t = torch.arange(72).reshape(2,3,3,4) # 初始化一个tensor

print("t--->", t)

index = torch.tensor([1, 0]) # 要选取数据的位置
print("index--->", index)

data0 = t.index_select(0, index) # 第一个参数:从第0维挑选， 第二个参数:从该维中挑选的位置
print("data0--->", data1)

data1 = t.index_select(1, index)
print("data1--->", data1)

data2 = t.index_select(2, index)
print("data2--->", data2)

data3 = t.index_select(3, index)
print("data3--->", data3)
``````

### output

``````t---> tensor([[[[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]],

[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]],

[[24, 25, 26, 27],
[28, 29, 30, 31],
[32, 33, 34, 35]]],

[[[36, 37, 38, 39],
[40, 41, 42, 43],
[44, 45, 46, 47]],

[[48, 49, 50, 51],
[52, 53, 54, 55],
[56, 57, 58, 59]],

[[60, 61, 62, 63],
[64, 65, 66, 67],
[68, 69, 70, 71]]]])
index---> tensor([1, 0])
data0---> tensor([[[[36, 37, 38, 39],
[40, 41, 42, 43],
[44, 45, 46, 47]],

[[48, 49, 50, 51],
[52, 53, 54, 55],
[56, 57, 58, 59]],

[[60, 61, 62, 63],
[64, 65, 66, 67],
[68, 69, 70, 71]]],

[[[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]],

[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]],

[[24, 25, 26, 27],
[28, 29, 30, 31],
[32, 33, 34, 35]]]])
data1---> tensor([[[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]],

[[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]]],

[[[48, 49, 50, 51],
[52, 53, 54, 55],
[56, 57, 58, 59]],

[[36, 37, 38, 39],
[40, 41, 42, 43],
[44, 45, 46, 47]]]])
data2---> tensor([[[[ 4,  5,  6,  7],
[ 0,  1,  2,  3]],

[[16, 17, 18, 19],
[12, 13, 14, 15]],

[[28, 29, 30, 31],
[24, 25, 26, 27]]],

[[[40, 41, 42, 43],
[36, 37, 38, 39]],

[[52, 53, 54, 55],
[48, 49, 50, 51]],

[[64, 65, 66, 67],
[60, 61, 62, 63]]]])
data3---> tensor([[[[ 1,  0],
[ 5,  4],
[ 9,  8]],

[[13, 12],
[17, 16],
[21, 20]],

[[25, 24],
[29, 28],
[33, 32]]],

[[[37, 36],
[41, 40],
[45, 44]],

[[49, 48],
[53, 52],
[57, 56]],

[[61, 60],
[65, 64],
[69, 68]]]])

``````