해결 방법: 'numpy.float64' 개체가 요소 할당을 지원하지 않습니다.


Python을 사용할 때 발생할 수 있는 일반적인 오류는 다음과 같습니다.

 TypeError: 'numpy.float64' object does not support item assignment

이 오류는 일반적으로 대괄호를 사용하여 float64 유형의 NumPy 변수에 새 값을 할당하려고 할 때 발생합니다.

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

오류를 재현하는 방법

값이 15.22 인 NumPy 변수를 만들고 괄호를 사용하여 새 값인 13.7 을 지정한다고 가정해 보겠습니다.

 import numpy as np

#define some float value
one_float = np. float64 (15.22)

#attempt to modify float value to be 13.7
one_float[0] = 13.7

TypeError: 'numpy.float64' object does not support item assignment

‘numpy.float64’ 개체가 요소 할당을 지원하지 않는다는 오류가 표시됩니다.

one_float가 스칼라이기 때문에 이 오류가 발생했지만 이를 대괄호를 사용하여 인덱스 위치 0의 값을 수정할 수 있는 배열로 처리하려고 했습니다.

one_float는 배열이 아니기 때문에 값을 수정하려고 할 때 대괄호를 사용할 수 없습니다.

오류를 수정하는 방법

이 오류를 해결하는 방법은 float에 새 값을 할당할 때 대괄호를 사용하지 않는 것입니다.

 #modify float value to be 13.7
one_float = 13.7

#view float
print (one_float)

13.7

괄호를 사용하지 않았기 때문에 값을 15.22 에서 13.7 로 변경했습니다.

배열로 작업하는 동안에는 대괄호를 사용하여 특정 인덱스 위치의 값을 수정할 수 있습니다.

예를 들어, 다음 코드는 대괄호 표기법을 사용하여 NumPy 배열의 첫 번째 요소를 15.22 에서 13.7 로 변경하는 방법을 보여줍니다.

 import numpy as np

#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])

#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7

#view updated array
print (many_floats)

[13.7 34.2 15.4 13.2 33.4]

이번에도 NumPy 배열로 작업하고 있기 때문에 오류가 발생하지 않으므로 괄호를 사용하는 것이 좋습니다.

추가 리소스

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

Python에서 수정하는 방법: ‘numpy.ndarray’ 개체를 호출할 수 없습니다.
수정 방법: TypeError: ‘numpy.float64’ 개체를 호출할 수 없습니다.
수정 방법: 유형 오류: 예상 문자열 또는 바이트 개체

의견을 추가하다

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