NumPy Splitting Array
การแยกอาร์เรย์ NumPy
การแยกเป็นการดำเนินการย้อนกลับของการเข้าร่วม
การรวมหลายอาร์เรย์เข้าด้วยกันเป็นหนึ่งเดียวและการแบ่งแยกอาร์เรย์หนึ่งออกเป็นหลาย ๆ
เราใช้array_split()
สำหรับแยกอาร์เรย์ เราส่งต่ออาร์เรย์ที่เราต้องการแยกและจำนวนการแยก
ตัวอย่าง
แบ่งอาร์เรย์ออกเป็น 3 ส่วน:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
หมายเหตุ:ค่าที่ส่งคืนคืออาร์เรย์ที่มีสามอาร์เรย์
หากอาร์เรย์มีองค์ประกอบน้อยกว่าที่จำเป็น อาร์เรย์จะปรับจากส่วนท้ายตามลำดับ
ตัวอย่าง
แบ่งอาร์เรย์ออกเป็น 4 ส่วน:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
หมายเหตุ:เรายังมีวิธีการที่split()
ใช้ได้ แต่จะไม่ปรับองค์ประกอบเมื่อองค์ประกอบน้อยกว่าในอาร์เรย์ต้นทางสำหรับการแยกเหมือนในตัวอย่างด้านบนarray_split()
ทำงานอย่างถูกต้อง แต่
split()
จะล้มเหลว
แยกออกเป็นอาร์เรย์
ค่าส่งกลับของarray_split()
วิธีการคืออาร์เรย์ที่มีการแยกแต่ละรายการเป็นอาร์เรย์
หากคุณแบ่งอาร์เรย์ออกเป็น 3 อาร์เรย์ คุณจะสามารถเข้าถึงอาร์เรย์ได้จากผลลัพธ์ เช่นเดียวกับองค์ประกอบอาร์เรย์อื่นๆ:
ตัวอย่าง
เข้าถึงอาร์เรย์ที่แยก:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])
การแยกอาร์เรย์ 2-D
ใช้ไวยากรณ์เดียวกันเมื่อแยกอาร์เรย์ 2 มิติ
ใช้array_split()
วิธีการ ส่งผ่านอาร์เรย์ที่คุณต้องการแยกและจำนวนการแยกที่คุณต้องการทำ
ตัวอย่าง
แยกอาร์เรย์ 2-D ออกเป็นอาร์เรย์ 2-D สามชุด
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9,
10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
ตัวอย่างข้างต้นจะคืนค่าอาร์เรย์ 2-D สามชุด
ลองดูตัวอย่างอื่น คราวนี้แต่ละองค์ประกอบในอาร์เรย์ 2 มิติมี 3 องค์ประกอบ
ตัวอย่าง
แยกอาร์เรย์ 2-D ออกเป็นอาร์เรย์ 2-D สามชุด
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)
ตัวอย่างข้างต้นจะคืนค่าอาร์เรย์ 2-D สามชุด
นอกจากนี้ คุณสามารถระบุแกนที่คุณต้องการแยกส่วนได้
ตัวอย่างด้านล่างจะส่งกลับอาร์เรย์ 2 มิติสามชุด แต่จะแยกตามแถว (แกน=1)
ตัวอย่าง
แยกอาร์เรย์ 2-D ออกเป็นอาร์เรย์ 2-D สามชุดตามแถว
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
อีกวิธีหนึ่งใช้hsplit()
ตรงข้ามกับ
hstack()
ตัวอย่าง
ใช้hsplit()
วิธีการเพื่อแยกอาร์เรย์ 2-D ออกเป็นอาร์เรย์ 2-D สามชุดตามแถว
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9],
[10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)
หมายเหตุ:ทางเลือกที่คล้ายคลึงกันvstack()
และ
พร้อมใช้ งานdstack()
เป็น
vsplit()
และ
dsplit()