해결 방법: '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’ 개체를 호출할 수 없습니다.
수정 방법: 유형 오류: 예상 문자열 또는 바이트 개체