[파이썬][Scipy] 다차원 배열 인덱싱과 슬라이싱 방법과 예제

다차원 배열의 인덱싱과 슬라이싱은 NumPy 및 Scipy에서 매우 유용하며 데이터의 부분 집합에 접근하거나 수정하는 데 사용됩니다. 다차원 배열의 인덱싱과 슬라이싱 방법을 예제와 함께 살펴보겠습니다.

다차원 배열 인덱싱 (Multidimensional Array Indexing):

  1. 2차원 배열 인덱싱:
import numpy as np
    
    arr = np.array([[1, 2, 3],
                    [4, 5, 6],
                    [7, 8, 9]])
    
    # 인덱스를 사용하여 요소에 접근
    print(arr[0, 1])  # 첫 번째 행, 두 번째 열의 요소
    print(arr[2, 0])  # 세 번째 행, 첫 번째 열의 요소
  1. 3차원 배열 인덱싱:
import numpy as np
    
    arr = np.array([[[1, 2, 3],
                     [4, 5, 6]],
                    
                    [[7, 8, 9],
                     [10, 11, 12]]])
    
    # 인덱스를 사용하여 요소에 접근
    print(arr[0, 1, 2])  # 첫 번째 차원에서 0번 인덱스, 두 번째 차원에서 1번 인덱스, 세 번째 차원에서 2번 인덱스의 요소
    print(arr[1, 0, 1])  # 첫 번째 차원에서 1번 인덱스, 두 번째 차원에서 0번 인덱스, 세 번째 차원에서 1번 인덱스의 요소

다차원 배열 슬라이싱 (Multidimensional Array Slicing):

  1. 2차원 배열 슬라이싱:
import numpy as np
    
    arr = np.array([[1, 2, 3],
                    [4, 5, 6],
                    [7, 8, 9]])
    
    # 슬라이싱을 사용하여 부분 배열 추출
    sub_arr = arr[0:2, 1:3]  # 첫 번째 행부터 두 번째 행, 두 번째 열부터 세 번째 열까지 추출
    print(sub_arr)
  1. 3차원 배열 슬라이싱:
import numpy as np
    
    arr = np.array([[[1, 2, 3],
                     [4, 5, 6]],
                    
                    [[7, 8, 9],
                     [10, 11, 12]]])
    
    # 슬라이싱을 사용하여 부분 배열 추출
    sub_arr = arr[0, :, 1:3]  # 첫 번째 차원에서 0번 인덱스, 모든 행, 두 번째 열부터 세 번째 열까지 추출
    print(sub_arr)

다차원 배열 인덱싱과 슬라이싱은 데이터의 특정 부분에 접근하거나 수정하는 데 매우 유용합니다. 이러한 기능을 사용하여 다양한 형태의 데이터를 조작하고 분석할 수 있습니다.