วิธีแก้ไข: วัตถุ 'numpy.float64' ไม่รองรับการกำหนดองค์ประกอบ


ข้อผิดพลาดทั่วไปที่คุณอาจพบเมื่อใช้ Python คือ:

 TypeError: 'numpy.float64' object does not support item assignment

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณพยายามใช้วงเล็บเหลี่ยมเพื่อกำหนดค่าใหม่ให้กับตัวแปร NumPy ที่มีประเภท float64

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

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

สมมติว่าเราสร้างตัวแปร NumPy ที่มีค่า 15.22 และพยายามใช้วงเล็บเพื่อให้เป็นค่าใหม่ 13.7 :

 import numpy as np

#define some float value
one_float = np. float64 (15.22)

#attempt to modify float value to be 13.7
one_float[0] = 13.7

TypeError: 'numpy.float64' object does not support item assignment

เราได้รับข้อผิดพลาดว่า วัตถุ ‘numpy.float64’ ไม่รองรับการกำหนดองค์ประกอบ

เราได้รับข้อผิดพลาดนี้เนื่องจาก one_float เป็นสเกลาร์ แต่เราพยายามถือว่ามันเป็นอาร์เรย์ที่เราสามารถใช้วงเล็บเหลี่ยมเพื่อแก้ไขค่าที่ตำแหน่งดัชนี 0

เนื่องจาก one_float ไม่ใช่อาร์เรย์ เราจึงไม่สามารถใช้วงเล็บเหลี่ยมเมื่อพยายามแก้ไขค่าของมัน

วิธีการแก้ไขข้อผิดพลาด

วิธีแก้ไขข้อผิดพลาดนี้คืออย่าใช้วงเล็บเหลี่ยมเมื่อกำหนดค่าใหม่ให้กับทศนิยม:

 #modify float value to be 13.7
one_float = 13.7

#view float
print (one_float)

13.7

เราจัดการเปลี่ยนค่าจาก 15.22 เป็น 13.7 เพราะเราไม่ได้ใช้วงเล็บ

โปรดทราบว่าคุณสามารถใช้วงเล็บเหลี่ยมเพื่อแก้ไขค่าในตำแหน่งดัชนีเฉพาะได้ตราบใดที่คุณทำงานกับอาร์เรย์

ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีการเปลี่ยนองค์ประกอบแรกของอาร์เรย์ NumPy จาก 15.22 เป็น 13.7 โดยใช้เครื่องหมายวงเล็บเหลี่ยม:

 import numpy as np

#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])

#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7

#view updated array
print (many_floats)

[13.7 34.2 15.4 13.2 33.4]

ครั้งนี้เรายังไม่ได้รับข้อผิดพลาดเนื่องจากเรากำลังทำงานกับอาร์เรย์ NumPy ดังนั้นจึงสมเหตุสมผลที่จะใช้วงเล็บ

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไขใน Python: ไม่สามารถเรียกวัตถุ ‘numpy.ndarray’ ได้
วิธีแก้ไข: TypeError: ไม่สามารถเรียกวัตถุ ‘numpy.float64’ ได้
วิธีแก้ไข: ข้อผิดพลาดประเภท: สตริงที่คาดหวังหรือวัตถุไบต์

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

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