การกรองอาร์เรย์ด้วย Boolean indexing
นอกจากการ indexing ด้วยจำนวนเต็มแล้ว ยังสามารถใช้ Boolean indexing กับอาร์เรย์ได้อีกด้วย โดยการสร้าง Boolean array ที่มีค่าเป็น True ในตำแหน่งที่ต้องการเก็บไว้ ก็จะสามารถกรองอาร์เรย์ได้ วิธีนี้มีประโยชน์มากในการกรองอาร์เรย์หนึ่งโดยอิงจากค่าในอีกอาร์เรย์หนึ่ง
ในแบบฝึกหัดนี้ จะสำรวจว่าน้ำหนักแรกเกิดแตกต่างกันอย่างไรระหว่างสัตว์ที่มักออกลูกครั้งละตัวกับสัตว์ที่ออกลูกครั้งละหลายตัว โดยมี NumPy array สองชุดและแพ็กเกจ NumPy ในชื่อ np โหลดไว้ในเวิร์กสเปซแล้ว
litter_sizeคือขนาดครอกเฉลี่ยของสัตว์แต่ละชนิดจากข้อมูลกว่า 1,200 ชนิดbirth_weightคือน้ำหนักแรกเกิดเฉลี่ยของสัตว์แต่ละชนิดในหน่วยกรัม
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python สำหรับผู้ใช้ MATLAB
คำแนะนำการฝึกหัด
- สร้าง Boolean array ชื่อ
mono_birthsและmulti_birthsสำหรับสัตว์ที่มักออกลูกครั้งละตัวและสัตว์ที่ออกลูกครั้งละมากกว่าหนึ่งตัวตามลำดับ - สร้างอาร์เรย์
mono_birth_weightและmulti_birth_weightซึ่งเก็บน้ำหนักแรกเกิดของสัตว์ที่ออกลูกครั้งละตัวและสัตว์ที่ออกลูกครั้งละหลายตัวตามลำดับ - แสดงค่าเฉลี่ยน้ำหนักแรกเกิดของสัตว์ที่มักออกลูกครั้งละตัวและสัตว์ที่ออกลูกครั้งละมากกว่าหนึ่งตัว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create Boolean arrays that indicate mono births and multi births
mono_births = litter_size ____ 1.0
multi_births = ____
# Create two arrays of birth weights for mono and multi births
mono_birth_weight = birth_weight[____]
multi_birth_weight = ____
# Calculate the mean birth weight for mono birth and multi birth animals
print(np.____(mono_birth_weight))
print(np.____(____))