วิธีแก้ไข: วัตถุ 'numpy.ndarray' ไม่มีแอตทริบิวต์ 'index'
ข้อผิดพลาดที่คุณอาจพบเมื่อใช้ NumPy คือ:
AttributeError : 'numpy.ndarray' object has no attribute 'index'
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามใช้ฟังก์ชัน index() บนอาร์เรย์ NumPy ซึ่งไม่มีแอตทริบิวต์ดัชนีที่พร้อมใช้งาน
ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเรามีอาร์เรย์ NumPy ดังต่อไปนี้:
import numpy as np #create NumPy array x = np. array ([4, 7, 3, 1, 5, 9, 9, 15, 9, 18])
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาค่าต่ำสุดและสูงสุดในอาร์เรย์:
#find minimum and maximum values of array
min_val = np. min (x)
max_val = np. max (x)
#print minimum and maximum values
print (min_val, max_val)
1 18
ตอนนี้สมมติว่าเรากำลังพยายามค้นหาตำแหน่งดัชนีของค่าต่ำสุดและค่าสูงสุดในอาร์เรย์:
#attempt to print index position of minimum value
x. index (min_val)
AttributeError : 'numpy.ndarray' object has no attribute 'index'
เราได้รับข้อผิดพลาดเนื่องจากเราไม่สามารถนำฟังก์ชัน index() ไปใช้กับอาร์เรย์ NumPy ได้
วิธีแก้ไขข้อผิดพลาด
หากต้องการค้นหาตำแหน่งดัชนีของค่าต่ำสุดและสูงสุดในอาร์เรย์ NumPy เราสามารถใช้ฟังก์ชัน NumPywhere () ได้:
#find index position of minimum value
n.p. where (x == min_val)
(array([3]),)
#find index position of maximum value
n.p. where (x == max_val)
(array([9]),)
จากผลลัพธ์เราจะเห็นได้ว่า:
- ค่าต่ำสุดของอาร์เรย์อยู่ที่ตำแหน่งดัชนี 3
- ค่าสูงสุดของอาร์เรย์อยู่ที่ตำแหน่งดัชนี 9
เราสามารถใช้ไวยากรณ์ทั่วไปเดียวกันนี้เพื่อค้นหาตำแหน่งดัชนีของค่าใดๆ ในอาร์เรย์ NumPy
ตัวอย่างเช่น เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาตำแหน่งดัชนีที่เท่ากับค่า 9 ในอาร์เรย์ NumPy:
#find index positions that are equal to the value 9
n.p. where (x == 9 )
(array([5, 6, 8]),)
จากผลลัพธ์เราจะเห็นว่าค่าที่ตำแหน่งดัชนี 5, 6 และ 8 มีค่าเท่ากับ 9 ทั้งหมด
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:
วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้