수정 방법: typeerror: 유연한 유형으로 줄일 수 없습니다.


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

 ValueError : cannot perform reduce with flexible type

이 오류는 Python에서 숫자가 아닌 객체에 대해 계산을 수행하려고 할 때 발생합니다.

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

오류를 재현하는 방법

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

 import numpy as np

#define NumPy array of values
data = np. array (['1', '2', '3', '4', '7', '9', '10', '12'])

#attempt to calculate median of values
n.p. median (data)

TypeError : cannot perform reduce with flexible type

문자열 값 목록의 중앙값을 계산하려고 했기 때문에 TypeError 가 발생했습니다.

오류를 수정하는 방법

이 오류를 해결하는 가장 쉬운 방법은 NumPy 배열을 float 객체로 변환하여 수학 연산을 수행하는 것입니다.

다음 코드는 이를 수행하는 방법을 보여줍니다.

 #convert NumPy array of string values to float values
data_new = data. astype (float)

#view updated NumPy array
data_new

array([ 1., 2., 3., 4., 7., 9., 10., 12.])

#check data type of array
data_new. dtype

dtype('float64')

이제 NumPy 배열에서 수학 연산을 수행할 수 있습니다.

 #calculate median value of array
n.p. median (data_new)

5.5

#calculate mean value of array
n.p. mean (data_new)

6.0

#calculate max value of array
n.p. max (data_new)

12.0

NumPy 배열은 float 개체이므로 오류가 발생하지 않습니다. 이는 수학 연산을 수행할 수 있음을 의미합니다.

추가 리소스

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

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

의견을 추가하다

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