วิธีเปรียบเทียบอาร์เรย์ 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