해결 방법: 'numpy.float64' 객체는 반복 가능하지 않습니다.
NumPy를 사용할 때 발생할 수 있는 오류는 다음과 같습니다.
TypeError : 'numpy.float64' object is not iterable
이 오류는 NumPy에서 float 값에 대해 반복 작업을 반복적으로 수행하려고 할 때 발생하며 이는 불가능합니다.
다음 예에서는 실제로 이 오류를 해결하는 방법을 보여줍니다.
오류를 재현하는 방법
다음과 같은 NumPy 배열이 있다고 가정합니다.
import numpy as np #define array of data data = np. array ([1.3, 1.5, 1.6, 1.9, 2.2, 2.5]) #display array of data print (data) [1.3 1.5 1.6 1.9 2.2 2.5]
이제 배열에 있는 각 값의 합계를 인쇄한다고 가정해 보겠습니다.
#attempt to print the sum of every value
for i in data:
print (sum(i))
TypeError : 'numpy.float64' object is not iterable
배열의 각 개별 부동 소수점 값에 대해 반복적으로(값의 합계를 구하려고) 시도했기 때문에 오류가 발생했습니다.
오류를 수정하는 방법
다음 두 가지 방법으로 이 오류를 피할 수 있습니다.
1. 배열의 각 값에 대해 비반복 작업을 수행합니다.
예를 들어 배열의 각 값을 인쇄할 수 있습니다.
#print every value in array
for i in data:
print (i)
1.3
1.5
1.6
1.9
2.2
2.5
각 값에 대해 반복을 시도하지 않았기 때문에 오류가 발생하지 않습니다.
2. 다차원 배열에 대해 반복 작업을 수행합니다.
다차원 배열에 대해 반복 작업을 수행하여 오류를 피할 수도 있습니다.
#create multi-dimensional array
data2 = np. array ([[1.3, 1.5], [1.6, 1.9], [2.2, 2.5]])
#print sum of each element in array
for i in data2:
print (sum(i))
2.8
3.5
4.7
다차원 배열에 sum() 함수를 사용하는 것이 합리적이기 때문에 오류가 발생하지 않습니다.
특히 NumPy가 합계 값을 계산하는 방법은 다음과 같습니다.
- 1.3 + 1.5 = 2.8
- 1.6 + 1.9 = 3.5
- 2.2 + 2.5 = 4.7
추가 리소스
다음 튜토리얼에서는 Python의 다른 일반적인 오류를 수정하는 방법을 설명합니다.
Pandas에서 KeyError를 수정하는 방법
해결 방법: ValueError: float NaN을 int로 변환할 수 없습니다.
해결 방법: ValueError: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다.