해결 방법: 'numpy.ndarray' 개체에 'index' 속성이 없습니다.


NumPy를 사용할 때 발생할 수 있는 오류는 다음과 같습니다.

 AttributeError : 'numpy.ndarray' object has no attribute 'index'

이 오류는 인덱스 속성을 사용할 수 없는 NumPy 배열에서 index() 함수를 사용하려고 할 때 발생합니다.

다음 예에서는 실제로 이 오류를 해결하는 방법을 보여줍니다.

오류를 재현하는 방법

다음과 같은 NumPy 배열이 있다고 가정합니다.

 import numpy as np

#create NumPy array
x = np. array ([4, 7, 3, 1, 5, 9, 9, 15, 9, 18])

다음 구문을 사용하여 배열의 최소값과 최대값을 찾을 수 있습니다.

 #find minimum and maximum values of array
min_val = np. min (x)
max_val = np. max (x)

#print minimum and maximum values
print (min_val, max_val)

1 18

이제 배열에서 최소값과 최대값의 인덱스 위치를 찾으려고 한다고 가정합니다.

 #attempt to print index position of minimum value
x. index (min_val)

AttributeError : 'numpy.ndarray' object has no attribute 'index'

NumPy 배열에 index() 함수를 적용할 수 없기 때문에 오류가 발생합니다.

오류를 해결하는 방법

NumPy 배열에서 최소값과 최대값의 인덱스 위치를 찾으려면 NumPywhere () 함수를 사용할 수 있습니다.

 #find index position of minimum value
n.p. where (x == min_val)

(array([3]),)

#find index position of maximum value
n.p. where (x == max_val)

(array([9]),)

결과에서 우리는 다음을 볼 수 있습니다:

  • 배열의 최소값은 인덱스 위치 3 에 있습니다.
  • 배열의 최대값은 인덱스 위치 9 에 있습니다.

이와 동일한 일반 구문을 사용하여 NumPy 배열에서 모든 값의 인덱스 위치를 찾을 수 있습니다.

예를 들어, 다음 구문을 사용하여 NumPy 배열의 값 9와 동일한 인덱스 위치를 찾을 수 있습니다.

 #find index positions that are equal to the value 9
n.p. where (x == 9 )

(array([5, 6, 8]),)

결과를 보면 인덱스 위치 5, 6, 8의 값이 모두 9 임을 알 수 있습니다.

추가 리소스

다음 튜토리얼에서는 Python의 다른 일반적인 오류를 수정하는 방법을 설명합니다.

Pandas에서 KeyError를 수정하는 방법
해결 방법: ValueError: float NaN을 int로 변환할 수 없습니다.
해결 방법: ValueError: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다