NumPy การแบ่งแบบภาพ
- หน้าก่อนหน้า NumPy การเชื่อมแบบภาพ
- หน้าต่อไป NumPy การค้นหาแบบภาพ
แบ่งแรงเชิงลิสต์ NumPy
การแบ่งแยกคือปฏิกิริยาตรงกันข้ามของการเชื่อมต่อ
การเชื่อมต่อ (Joining) คือการรวมมากกว่าหนึ่งตัวแปรเป็นตัวแปรเดียว การแบ่งแยก (Spliting) คือการแบ่งตัวแปรเดียวเป็นหลายตัวแปร
เราใช้ 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])
แบ่งแยกแรงเชิงลิสต์สองมิติ
เมื่อแบ่งแยกแรงเชิงลิสต์สองมิติ ให้ใช้สyntax ตรงนี้
ใช้ 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-D ของแต่ละองค์ประกอบมี 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-D แต่แบ่งแยกตามแถว (axis=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)
วิธีแก้ปัญหาอื่นๆ คือใช้ hstack()
ที่เดียวกัน hsplit()
。
ตัวอย่าง
ใช้วิธี 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)
คำเตือน:vsplit()
และ dsplit()
สามารถใช้เดียวกับ vstack()
และ dstack()
วิธีทางเลือกที่คล้ายกัน
- หน้าก่อนหน้า NumPy การเชื่อมแบบภาพ
- หน้าต่อไป NumPy การค้นหาแบบภาพ