เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor
การแยก NumPy อาร์เรย์
การแยกเป็นการดำเนินการย้อนกลับของการเข้าร่วม(Join) การเข้าร่วม(Join)ผสานหลายอาร์เรย์เป็นหนึ่งและแบ่งออกเป็นหนึ่งอาร์เรย์เป็นหลาย ๆ
เราใช้ array_split() สำหรับการแยกอาร์เรย์เราส่งผ่านอาร์เรย์ที่เราต้องการแยกและจำนวนการแบ่ง
ตัวอย่าง
แบ่งอาร์เรย์ออกเป็น 3 ส่วน
import numpy as np |
ผลลัพธ์
[array([1, 2]), array([3, 4]), array([5, 6])]
|
หมายเหตุ: ค่าที่ส่งคืนคืออาร์เรย์ที่มีสามอาร์เรย์
หากอาร์เรย์มีองค์ประกอบน้อยกว่าที่ต้องการก็จะปรับจากจุดสิ้นสุดตามลำดับ
import numpy as np |
ผลลัพธ์
[array([1, 2]), array([3, 4]), array([5]), array([6])]
|
หมายเหตุ: เรายังมีวิธี split() ที่สามารถใช้งานได้ แต่จะไม่ปรับองค์ประกอบเมื่อองค์ประกอบในอาร์เรย์มีแหล่งข้อมูลน้อยลง สำหรับการแยกเช่นในตัวอย่างข้างต้น array_split() ทำงานอย่างถูกต้อง แต่ split() จะทำไม่ได้
การแบ่งออกเป็นอาร์เรย์
ค่าที่ส่งคืนของวิธี array_split() เป็นอาร์เรย์ที่มีการแยกแต่ละครั้งเป็นอาร์เรย์
หากนักเรียนแบ่งอาร์เรย์ออกเป็น 3 อาร์เรย์นักเรียนสามารถเข้าถึงอาร์เรย์เหล่านั้นได้จากผลลัพธ์เช่นเดียวกับองค์ประกอบอาร์เรย์ใด ๆ
ตัวอย่าง
การเข้าถึงอาร์เรย์ที่แบ่งออก
import numpy as np |
ผลลัพธ์
[1 2]
[3 4]
[5 6]
|
การแยกอาร์เรย์ 2-D
ใช้ไวยากรณ์เดียวกันเมื่อแบ่งอาร์เรย์ 2 มิติ ใช้เมธอด array_split () ส่งผ่านอาร์เรย์ที่นักเรียนต้องการแยกและจำนวนการแบ่งที่นักเรียนต้องการ
ตัวอย่าง
การแยกอาร์เรย์ 2-D ออกเป็นสามอาร์เรย์สองมิติ
import numpy as np |
ผลลัพธ์
[array([[1, 2], |
ตัวอย่างข้างต้นคือการส่งกลับค่าสองมิติสองอาร์เรย์
ลองดูตัวอย่างอื่นคราวนี้แต่ละองค์ประกอบในอาร์เรย์ 2 มิติมี 3 องค์ประกอบ
ตัวอย่าง
แยกอาร์เรย์ 2-D ออกเป็นสามอาร์เรย์สองมิติ
import numpy as np |
ผลลัพธ์
[array([[1, 2, 3],
[4, 5, 6]]), array([[ 7, 8, 9],
[10, 11, 12]]), array([[13, 14, 15],
[16, 17, 18]])]
|
ตัวอย่างข้างต้นคือการส่งกลับค่าสองมิติสองอาร์เรย์
นอกจากนี้นักเรียนสามารถระบุแกนที่นักเรียนต้องการแยกได้ ตัวอย่างด้านล่างนี้จะส่งกลับสองอาร์เรย์สามมิติ แต่จะแบ่งตามแถว (แกน = 1)
ตัวอย่าง
การแยกอาร์เรย์ 2-D ออกเป็นสามอาร์เรย์สองมิติพร้อมกัน
import numpy as np |
ผลลัพธ์
[array([[ 1], |
โซลูชันอื่นกำลังใช้ hsplit () ตรงข้ามกับ hstack ()
ตัวอย่าง
ใช้เมธอด hsplit () เพื่อแบ่งอาร์เรย์ 2 มิติออกเป็นสองมิติสองอาร์เรย์ตามแถว
import numpy as np |
ผลลัพธ์
[array([[ 1],
[ 4],
[ 7],
[10],
[13],
[16]]), array([[ 2],
[ 5],
[ 8],
[11],
[14],
[17]]), array([[ 3],
[ 6],
[ 9],
[12],
[15],
[18]])]
|
หมายเหตุ: ทางเลือกที่คล้ายกันกับ vstack() และ dstack() มีให้บริการในรูปแบบ vsplit() และ dsplit()
การเข้าถึงอาร์เรย์นั้นจะเป็นการผสานหลายอาร์เรย์เป็นหนึ่งและแบ่งออกเป็นหนึ่งอาร์เรย์เป็นหลาย ๆ เราใช้ array_split() เป็นอย่างไรกันบ้างครับ ง่ายไหมครับ เเล้วเจอกันในบทถัดไป
แปลจากhttps://www.w3schools.com/python/numpy_array_split.asp
Tag ที่น่าสนใจ: numpy array_splitting python array_operations programming array_manipulation array_split np.hsplit 2d_arrays multidimensional_arrays
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM