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() วิธีทางเลือกที่คล้ายกัน