วิธีเปรียบเทียบอาร์เรย์ numpy สองชุด: พร้อมตัวอย่าง


คุณสามารถใช้วิธีการต่อไปนี้เพื่อเปรียบเทียบค่าของอาร์เรย์ NumPy สองตัว:

วิธีที่ 1: ทดสอบว่าอาร์เรย์ NumPy สองตัวเท่ากันที่ระดับองค์ประกอบหรือไม่

 #test if array A and array B are element-wise equal
n.p. array_equal (A,B)

วิธีที่ 2: ทดสอบว่าอาร์เรย์ NumPy สองตัวเท่ากันที่ระดับองค์ประกอบหรือไม่ (ภายในเกณฑ์ความคลาดเคลื่อน)

 #test if array A and array B are element-wise equal (within absolute tolerance of 2)
n.p. allclose (A, B, atol= 2 )

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

ตัวอย่างที่ 1: ทดสอบว่าอาร์เรย์ NumPy สองตัวเท่ากันที่ระดับองค์ประกอบหรือไม่

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน array_equal() เพื่อทดสอบว่าอาร์เรย์ NumPy สองตัวเท่ากันในระดับองค์ประกอบหรือไม่:

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 5, 7, 10])

#test if arrays are element-wise equal
n.p. array_equal (A,B)

True

ฟังก์ชันคืน ค่า True เนื่องจากอาร์เรย์ NumPy ทั้งสองมีความยาวเท่ากันโดยมีค่าเท่ากันในตำแหน่งเดียวกัน

อย่างไรก็ตาม ฟังก์ชันจะส่งกลับ ค่า False หากอาร์เรย์ NumPy ทั้งสองมีค่าเท่ากันแต่อยู่ในตำแหน่งที่ต่างกัน:

 import numpy as np

#create two NumPy arrays with same values but in different positions
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 5, 10])

#test if arrays are element-wise equal
n.p. array_equal (A,B)

False

ตัวอย่างที่ 2: ทดสอบว่าอาร์เรย์ NumPy สองตัวเท่ากันที่ระดับองค์ประกอบหรือไม่ (ภายในเกณฑ์ความคลาดเคลื่อน)

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน allclose() เพื่อทดสอบว่าอาร์เรย์ NumPy สองตัวเท่ากันที่ระดับองค์ประกอบภายในค่าความอดทนที่ 2 หรือไม่ :

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 2)
n.p. allclose (A, B, atol= 2 )

True

ฟังก์ชันคืน ค่า True เนื่องจากองค์ประกอบที่ตรงกันระหว่างอาร์เรย์ NumPy แต่ละตัวอยู่ภายใน 2 ของกันและกัน

ตัวอย่างเช่น เราจะเห็นว่าองค์ประกอบในตำแหน่งที่สามและสี่ของแต่ละอาร์เรย์มีความแตกต่างกัน แต่เนื่องจากแต่ละคู่อยู่ห่างกัน 2 ค่า ฟังก์ชันจึงคืนค่าเป็นจริง

อย่างไรก็ตาม หากเราเปลี่ยนอาร์กิวเมนต์ความอดทนสัมบูรณ์ (atol) เป็น 1 ฟังก์ชันก็จะส่งคืน False :

 import numpy as np

#create two NumPy arrays
A = np. array ([1, 4, 5, 7, 10])
B = np. array ([1, 4, 7, 8, 10])

#test if arrays are element-wise equal (within absolute tolerance of 1)
n.p. allclose (A, B, atol= 1 )

False

ฟังก์ชันส่งคืนค่า False เนื่องจากองค์ประกอบที่เกี่ยวข้องในตำแหน่งที่สามของอาร์เรย์ NumPy แต่ละตัวไม่ได้อยู่ห่างจากกัน 1 วินาที

หมายเหตุ : โปรดดูเอกสาร NumPy สำหรับคำอธิบายที่สมบูรณ์ของฟังก์ชัน array_equal และ allclose

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

บทช่วยสอนต่อไปนี้จะอธิบายวิธีทำงานทั่วไปอื่น ๆ ใน NumPy:

วิธีย้ายองค์ประกอบในอาร์เรย์ NumPy
วิธีนับการเกิดขึ้นขององค์ประกอบใน NumPy
วิธีการคำนวณโหมดของอาร์เรย์ NumPy

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

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