본문 바로가기
Python/numpy

numpy IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed 오류 해결하기

by PySun 2024. 10. 7.
반응형

소개

파이썬에서 NumPy를 사용할 때 'IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed' 에러를 종종 발생할 수 있습니다. 이 에러는 주어진 배열이 1차원 배열인데, 2차원 배열처럼 인덱싱을 시도할 때 발생합니다. 이번 블로그 글에서는 이 에러의 원인과 해결 방법을 알아보겠습니다.

에러 발생 예시 코드

먼저, 'IndexError'가 발생할 수 있는 간단한 코드를 살펴보겠습니다.

import numpy as np

# 1차원 배열 생성
array_1d = np.array([1, 2, 3, 4, 5])

# 2차원 인덱싱 시도
element = array_1d[1, 2]
print(element)

에러 해결 방법

1. 올바른 차원으로 인덱싱하기

먼저, 1차원 배열을 인덱싱할 때는 단순히 한 개의 인덱스만 사용해야 합니다. 아래와 같이 올바른 인덱스 접근 방법을 적용해보세요.

import numpy as np

# 1차원 배열 생성
array_1d = np.array([1, 2, 3, 4, 5])

# 올바른 방식으로 인덱싱
element = array_1d[1]
print(element)  # 결과: 2

2. 다차원 배열 사용하기

만약 다차원 배열을 사용하고 싶다면, 배열을 생성할 때 2차원 형태로 만들어야 합니다. 아래와 같이 수정해볼 수 있습니다.

import numpy as np

# 2차원 배열 생성
array_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 2차원 인덱싱
element = array_2d[1, 2]
print(element)  # 결과: 6

마무리

이번 블로그 글에서는 NumPy에서 발생할 수 있는 'IndexError: too many indices for array' 에러에 대해 살펴보았습니다. 1차원 배열을 사용할 때는 하나의 인덱스만을 사용하고, 다차원 배열이 필요하다면 처음부터 다차원으로 정의하는 것이 중요합니다. NumPy를 사용할 때 배열의 차원을 항상 염두에 두어야 하며, 문서와 예제를 참고하여 적절한 인덱싱 방법을 익히는 것이 좋습니다.

반응형