วิธีแก้ไข: วัตถุ 'numpy.float64' ไม่สามารถทำซ้ำได้


ข้อผิดพลาดที่คุณอาจพบเมื่อใช้ NumPy คือ:

 TypeError : 'numpy.float64' object is not iterable

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามดำเนินการวนซ้ำกับค่าทศนิยมใน NumPy ซึ่งเป็นไปไม่ได้

ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรามีอาร์เรย์ 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:

วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *