ใน Python ปกติ คุณสามารถใช้ append()
วิธีการเพิ่มรายการต่อท้ายรายการ คุณไม่สามารถใช้วิธีนี้ใน NumPy หากคุณลองใช้ Python append()
วิธีการเพิ่มรายการต่อท้ายอาร์เรย์ NumPy คุณจะเห็น AttributeError: ‘numpy.ndarray’ object has no attribute ‘append’
ข้อผิดพลาด.
คู่มือนี้จะอธิบายรายละเอียดสาเหตุและวิธีแก้ปัญหาข้อผิดพลาด NumPy นี้ เราจะอ้างอิงถึงตัวอย่างเพื่อแสดงวิธีการแก้ไขข้อผิดพลาดนี้ มาเริ่มกันเลย
AttributeError:วัตถุ 'numpy.ndarray' ไม่มีแอตทริบิวต์ 'ผนวก'
AttributeError: ‘numpy.ndarray’ object has no attribute ‘append’
ข้อผิดพลาดเกิดจากการใช้ append()
วิธีการเพิ่มรายการในอาร์เรย์ NumPy คุณควรใช้ numpy.append()
. แทน วิธีถ้าคุณต้องการเพิ่มรายการลงในรายการ
numpy.append()
เมธอดถูกเขียนขึ้นเฉพาะสำหรับไลบรารี NumPy อาร์เรย์ NumPy นั้นแตกต่างจากอาร์เรย์ Python ปกติ ดังนั้นจึงสมเหตุสมผลที่ NumPy มีวิธีการของตนเองในการเพิ่มรายการลงในอาร์เรย์
NumPy append()
เมธอดใช้ไวยากรณ์นี้:
numpy.append(list_to_add_item, item_to_add)
พารามิเตอร์สองตัวที่เราจะเน้นคือ:
- list_to_add_item:รายการที่คุณต้องการเพิ่มรายการ
- item_to_add:รายการที่คุณต้องการเพิ่มไปยังรายการที่คุณระบุ
numpy.append()
วิธีส่งกลับอาร์เรย์ใหม่ซึ่งมีรายการที่คุณระบุในตอนท้ายโดยยึดตามอาร์เรย์ "list_to_add_item" โปรดทราบว่าคุณไม่ได้ใส่ append()
หลังรายการที่คุณต้องการเพิ่มรายการ เช่นเดียวกับที่คุณทำใน Python ปกติ
มาดูตัวอย่างของข้อผิดพลาดนี้กัน
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ตัวอย่างสถานการณ์
เรากำลังสร้างแอปพลิเคชันที่ติดตามเกรดประสิทธิภาพที่ผลิตภัณฑ์ได้รับหลังจากการประกันคุณภาพที่โรงงาน ผลิตภัณฑ์ได้รับคะแนนในระดับ 50 และผลิตภัณฑ์ทั้งหมดจะต้องได้คะแนนอย่างน้อย 40 เพื่อเผยแพร่สู่โลก
เรากำลังสร้างส่วนหนึ่งของแอปพลิเคชันที่เพิ่มคะแนนใหม่ให้กับอาร์เรย์ที่เก็บคะแนนที่ผลิตภัณฑ์ได้รับในวันสุดท้าย ในการสร้างโปรแกรมนี้ เราสามารถใช้ append()
กระบวนการ:
import numpy as np scores = np.array([49, 48, 49, 47, 42, 48, 46, 50]) to_add = 49 scores.append(to_add) print(scores)
โปรแกรมของเราเพิ่มคะแนน 39 ในรายการคะแนนของเรา ในสถานการณ์จริง เราอาจอ่านคะแนนเหล่านี้จากไฟล์ แต่เพื่อให้ตัวอย่างของเราเรียบง่าย เราได้ประกาศอาร์เรย์ในโปรแกรมของเรา รหัสของเราจะพิมพ์รายการคะแนนทั้งหมดไปยังคอนโซล Python หลังจากที่เพิ่มคะแนนใหม่ลงในอาร์เรย์คะแนนของเรา
เรียกใช้รหัสของเราและดูว่าเกิดอะไรขึ้น:
Traceback (most recent call last): File "test.py", line 6, in <module> scores.append(to_add) AttributeError: 'numpy.ndarray' object has no attribute 'append'
รหัสของเราส่งคืนข้อผิดพลาด
การแก้ปัญหา
เรากำลังพยายามใช้ Python append()
. ปกติ วิธีการเพิ่มรายการในอาร์เรย์ NumPy ของเรา แทนที่จะเป็นสร้าง numpy.append()
ที่สร้างเอง กระบวนการ.
เพื่อแก้ไขข้อผิดพลาดนี้ เราจำเป็นต้องใช้ไวยากรณ์สำหรับ numpy.append()
กระบวนการ:
import numpy as np scores = np.array([49, 48, 49, 47, 42, 48, 46, 50]) scores = np.append(scores, 49) print(scores)
เราใช้คำว่า np เพื่ออ้างถึงไลบรารี NumPy สิ่งนี้ใช้ได้เพราะเรากำหนดไลบรารี่ numpy เป็น np ในคำสั่งนำเข้าของเรา เราส่งรายการที่เราต้องการเพิ่มรายการเป็นอาร์กิวเมนต์แรกของเรา คะแนนใหม่ที่จะเพิ่มลงในอาร์เรย์ของเราคืออาร์กิวเมนต์ที่สองของเรา
เราต้องกำหนดผลลัพธ์ของ np.append()
. ของเรา การดำเนินการไปสู่ค่าใหม่ ทั้งนี้เป็นเพราะ np.append()
ไม่แก้ไขอาร์เรย์ที่มีอยู่ วิธีสร้างอาร์เรย์ใหม่ด้วยค่าใหม่ของคุณที่เพิ่มเข้ามาแทน
เรียกใช้โปรแกรมของเราและดูว่าเกิดอะไรขึ้น:
[49 48 49 47 42 48 46 50 49]
เพิ่มหมายเลข 49 ลงท้ายรายการเรียบร้อยแล้ว
บทสรุป
AttributeError: ‘numpy.ndarray’ object has no attribute ‘append’
ข้อผิดพลาดระบุว่าคุณกำลังใช้ Python append()
. ปกติ วิธีการเพิ่มรายการในอาร์เรย์ NumPy คุณควรใช้ numpy.append()
. แทน เมธอด ซึ่งใช้ไวยากรณ์:numpy.append(list, item_to_add) วิธีนี้จะสร้างรายการใหม่โดยเพิ่มรายการที่ระบุในตอนท้าย
คุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเข้ารหัสใน NumPy หรือไม่? ดูคู่มือวิธีการเรียนรู้ NumPy ของเรา คู่มือนี้มีเคล็ดลับยอดนิยมเกี่ยวกับวิธีสร้างความรู้เกี่ยวกับ NumPy ควบคู่ไปกับรายการแหล่งข้อมูลการเรียนรู้ที่เหมาะสำหรับนักพัฒนาระดับเริ่มต้นและระดับกลาง