해결 방법: '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: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다.

의견을 추가하다

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