เรียนเขียนโปรเเกรมง่ายๆกับ Expert Progamming Tutor กับบท NumPy Set Operations
ชุด(Set)คืออะไร
เซตในคณิตศาสตร์คือชุดขององค์ประกอบที่เป็นเอกลักษณ์ เซตใช้สำหรับการดำเนินการที่เกี่ยวข้องกับการตัดกันการรวมและการดำเนินการที่แตกต่างกันบ่อยครั้ง
สร้างเซตใน NumPy
เราสามารถใช้วิธีunique()ของ NumPy เพื่อหาองค์ประกอบที่ไม่เหมือนกับตัวจากอาเรย์ใด ๆ เช่น สร้างชุดอาร์เรย์ แต่จำไว้ว่าชุดอาร์เรย์ควรเป็นอาร์เรย์ 1-D เท่านั้น
ตัวอย่าง
แปลงอาเรย์ต่อไปนี้ด้วยองค์ประกอบที่ซ้ำกันเป็นชุด
import numpy as np |
ผลลัพธ์
[1 2 3 4 5 6 7] |
ในการหาค่าที่ไม่ซ้ำกันของสองอาร์เรย์ให้ใช้วิธี union1d ()
ตัวอย่าง
หาการรวมของสองชุดอาร์เรย์ต่อไปนี้
import numpy as np |
ผลลัพธ์
[1 2 3 4 5 6] |
หาจุดแยก
เมื่อต้องการหาเฉพาะค่าที่มีอยู่ในทั้งสองอาร์เรย์ใช้เมธอด intersect1d ()
ตัวอย่าง
หาจุดตัดของสองชุดอาร์เรย์ต่อไปนี้
import numpy as np |
ผลลัพธ์
[3 4] |
หมายเหตุ: เมธอด intersect1d() ใช้อาร์กิวเมนต์ที่เป็นทางเลือกสมมติว่า _unique ซึ่งหากตั้งค่าเป็น True สามารถเพิ่มความเร็วในการคำนวณได้ ควรตั้งค่าเป็น True เสมอเมื่อจัดการกับชุด
หาความแตกต่าง
หากต้องการหาเฉพาะค่าในชุดแรกที่ไม่มีอยู่ในชุดวินาทีให้ใช้เมธอด setdiff1d()
ตัวอย่าง
import numpy as np |
ผลลัพธ์
[1 2] |
หมายเหตุ: เมธอด setxor1d() จะใช้อาร์กิวเมนต์ตัวเลือกict_uniqueซึ่งหากตั้งค่าเป็น True สามารถเร่งการคำนวณได้เร็วขึ้น ควรตั้งค่าเป็น True เสมอเมื่อจัดการกับชุด
การหาความแตกต่างแบบสมมาตร
หากต้องการหาเฉพาะค่าที่ไม่ได้อยู่ในชุดทั้งสองให้ใช้วิธีการ setxor1d ()
ตัวอย่าง
หาความแตกต่างที่สมมาตรของ set1 และ set2
import numpy as np |
ผลลัพธ์
[1 2 5 6] |
หมายเหตุ: เมธอดsetdiff1d() จะรับอาร์กิวเมนต์ตัวเลือกict_uniqueซึ่งหากตั้งค่าเป็น True สามารถเพิ่มความเร็วในการคำนวณได้ ควรตั้งค่าเป็น True เสมอเมื่อจัดการกับชุด(Set)
ก็จบกันไปแล้วกับเนื้อหาเรื่องเซต(Set)เป็นอย่างไรกันบ้าง ไม่ยากใช่ไหมละ
แปลจากhttps://www.w3schools.com/python/numpy_ufunc_set_operations.asp
Tag ที่น่าสนใจ: numpy set_operations array python programming unique union intersect set_difference symmetric_difference numpy_methods programming_tutor data_manipulation array_manipulation
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com