[파이썬][Scipy] 행렬을 작은 부분 행렬로 나누기 (Matrix Splitting) 예제

행렬을 작은 부분 행렬로 나누는 방법은 슬라이싱(Slicing)을 사용하여 수행할 수 있습니다. 다음은 NumPy를 사용하여 행렬을 작은 부분 행렬로 나누는 예제입니다.

mport numpy as np

# 4x4 크기의 행렬 생성
matrix = np.array([[1, 2, 3, 4],
                   [5, 6, 7, 8],
                   [9, 10, 11, 12],
                   [13, 14, 15, 16]])

# 행렬을 작은 부분 행렬로 나누기 (슬라이싱)
# 예: 첫 번째 행과 두 번째 열부터 세 번째 열까지
sub_matrix = matrix[0:2, 1:3]

print("원본 행렬:")
print(matrix)
print("\n작은 부분 행렬:")
print(sub_matrix)

위의 예제에서는 다음과 같은 작업을 수행합니다:

  1. 4x4 크기의 원본 행렬을 생성합니다.
  2. NumPy 슬라이싱을 사용하여 원본 행렬의 일부분을 추출합니다. 이때 [행 시작:행 끝, 열 시작:열 끝] 형식의 슬라이싱을 사용합니다.
  3. 추출한 작은 부분 행렬을 출력합니다.

이렇게 하면 원하는 행렬의 일부를 선택하고 원본 데이터를 다룰 수 있습니다. 작은 부분 행렬은 원본 행렬의 뷰(View)이므로, 해당 뷰의 값을 수정하면 원본 행렬도 변경될 수 있음에 주의하십시오.