วิธีแก้ไข: วัตถุ '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: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้