본문 바로가기

코드 정리/Pytorch 정리

3. Tensor Indexing, Slicing(텐서 인덱싱, 슬라이싱)

아래부터는 한 번씩 따라서 직접 코딩해 보시고, 실행 결과를 확인해 보시길 권합니다.


3.1 Tensor Indexing

# 1차원 dimension indexing
x = torch.arange(1, 10)
print(x)
print(x[3])
print(x[-1])

# 1차원 dimension boolean indexing
print(x>5)
print(x[x>5])

# 1차원 dimension list indexing
print(x[[3,5,7]])

# 1차원 dimension indexing된 element로 새로운 tensor 구성
print(x[torch.tensor([1,3,4])])

# 2차원 dimension indexing
x = torch.arange(1,10).reshape(3, 3)
print(x)

# 1번 행 indexing
print(x[1])

# 1번 열 indexing
print(x[:, 1])

# 2행 1열 indexing
print(x[2][1])
print(x[2,1])

# 2차원 dimension boolean indexing
print(x>5)
print(x[x>5])

# 2차원 dimension list indexing
print(x[[2, 2, 0], [1, 0, 2]])

# 2차원 dimension indexing된 element로 새로운 tensor 구성
print(x[torch.tensor([2, 1, 1])])

# 3차원 dimension indexing
x = torch.arange(27).reshape(3,3,3)
print(x)
print(x[1, 2, 2])
print(x[1][2][2])

# 3차원 dimension boolean indexing
print(x>10)
print(x[x>10])

# 3차원 dimension list indexing
print(x[[1, 0, 2], [0, 2, 2]])
print(x[[1, 0, 2], [0, 2, 2], [0, 2, 1]])

# 3차원 dimension indexing된 element로 새로운 tensor 구성
print(x[torch.tensor([2, 1, 0])])

3.2 Tensor Slicing

# 1차원 dimension slicing
x = torch.arange(10)
print(x)
print(x[3:6])
print(x[3:])
print(x[:7])
print(x[:])

# 2차원 dimension slicing
x = torch.arange(1, 10).reshape(3, 3)
print(x)
print(x[1:])
print(x[:])
print(x[1, 0:2])
print(x[:,2])

# 3차원 dimension slicing
x = torch.arange(27).reshape(3, 3, 3)
print(x)

print(x[1:])
print(x[0, :, 2])
print(x[1, 0, :])

'코드 정리 > Pytorch 정리' 카테고리의 다른 글

6. PyTorch Model 구성  (0) 2025.01.27
5. PyTorch Dataset / DataLoader  (0) 2025.01.24
4. PyTorch에서 제공하는 여러 함수  (1) 2025.01.23
2. Tensor 연산  (0) 2025.01.21
1. Tensor 생성  (1) 2025.01.20