วิธีแก้ไข: valueerror: การตั้งค่าองค์ประกอบอาร์เรย์ด้วยลำดับ


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

 ValueError : setting an array element with a sequence.

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อพยายามจัดกลุ่มตัวเลขหลายตัวให้อยู่ในตำแหน่งเดียวในอาร์เรย์ NumPy

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

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

สมมติว่าเรามีอาร์เรย์ NumPy ดังต่อไปนี้:

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

ตอนนี้ สมมติว่าเรากำลังพยายามวางตัวเลขสองตัวไว้ที่ตำแหน่งแรกของอาร์เรย์:

 #attempt to cram values '4' and '5' both into first position of NumPy array
data[0] = np. array ([4,5])

ValueError : setting an array element with a sequence.

ข้อผิดพลาดบอกเราอย่างชัดเจนถึงสิ่งที่เราทำผิด: เราพยายามกำหนดองค์ประกอบของอาร์เรย์ NumPy ด้วยลำดับของค่า

โดยเฉพาะอย่างยิ่งเราพยายามวางค่า “4” และ “5” ไว้ที่ตำแหน่งแรกของอาร์เรย์ NumPy

ซึ่งเป็นไปไม่ได้ ดังนั้นเราจึงได้รับข้อผิดพลาด

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

วิธีแก้ไขข้อผิดพลาดนี้คือเพียงกำหนดค่าให้กับตำแหน่งแรกของอาร์เรย์:

 #assign the value '4' to the first position of the array
data[0] = np. array ([4])

#view updated array
data

array([ 4, 2, 3, 4, 5, 6, 7, 8, 9, 10])

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดใดๆ

หากเราต้องการกำหนดค่าใหม่สองค่าให้กับองค์ประกอบอาร์เรย์ เราจำเป็นต้องใช้ไวยากรณ์ต่อไปนี้:

 #assign the values '4' and '5' to the first two positions of the array
data[0:2] = np. array ([4, 5])

#view updated array
data

array([ 4, 5, 3, 4, 5, 6, 7, 8, 9, 10])

โปรดทราบว่าค่าสองค่าแรกมีการเปลี่ยนแปลงในตาราง ในขณะที่ค่าอื่นๆ ทั้งหมดยังคงเหมือนเดิม

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

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

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

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

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