Python/numpy
Numpy TypeError: 'numpy.ndarray' object is not subscriptable 오류 해결하기
PySun
2024. 10. 18. 22:09
반응형
소개
Numpy를 사용하다 보면 가끔 'TypeError: 'numpy.ndarray' object is not subscriptable'이라는 오류를 만나게 되곤 합니다. 이 오류는 배열에 대한 잘못된 인덱스 접근이 원인으로 발생합니다. 본 블로그 글에서는 이 오류의 발생 원인과 해결책을 살펴보겠습니다.
에러 발생 예시 코드
다음은 'TypeError: 'numpy.ndarray' object is not subscriptable' 에러가 발생할 수 있는 간단한 예시 코드입니다.
import numpy as np
# 난수로 이루어진 배열 생성
array = np.random.rand(5)
# 잘못된 인덱스 접근
value = array[10] # 10은 유효하지 않은 인덱스입니다.
print(value)
에러 해결 방법
1. 유효한 인덱스 범위 확인
Numpy 배열의 인덱스는 항상 0부터 시작하기 때문에 인덱스가 배열의 길이보다 작은 경우만 유효합니다. 다음 코드를 통해 배열의 길이를 확인한 후 유효한 인덱스를 사용하세요.
import numpy as np
# 난수로 이루어진 배열 생성
array = np.random.rand(5)
# 유효한 인덱스 확인
if 0 <= 10 < len(array):
value = array[10]
print(value)
else:
print("인덱스 10은 유효하지 않습니다. 배열의 범위는 0에서", len(array)-1, "까지입니다.")
2. 다차원 배열의 인덱스 접근 올바르게 하기
다차원 배열에 접근할 때는 각 차원에 대해 올바른 인덱스를 사용해야 합니다. 예를 들어, 2차원 배열에서 특정 요소에 접근하기 위해서는 두 개의 인덱스를 사용해야 합니다.
import numpy as np
# 2차원 배열 생성
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 올바른 인덱스 접근
value = array_2d[1, 2] # 1번째 행, 2번째 열의 값
print(value)
마무리
이번 블로그 글에서는 Numpy에서 발생할 수 있는 'TypeError: 'numpy.ndarray' object is not subscriptable' 에러에 대한 해결 방법을 살펴보았습니다. 유효한 인덱스 범위를 확인하거나, 다차원 배열의 인덱스를 적절히 사용하는 방법으로 이 오류를 피할 수 있습니다. Numpy를 사용할 때는 항상 배열의 크기와 차원에 주의하여 작업해야 한다는 점을 잊지 마세요!
반응형