Trong bài trước chúng ta đã tìm hiểu về cách nối, xếp chồng mảng trong numpy. Bài này chúng ta sẽ đi tìm hiểu về cách chia, tách mảng trong numpy.
Split array trong numpy là chia, tách một mảng thành nhiều mảng.
import numpy as np
arr = np.array([1,2,3,4,5,6,7,8])
arr_split = np.array_split(arr,2)
print(arr_split)
[array([1, 2, 3, 4]), array([5, 6, 7, 8])]
Sử dụng hàm array_split() để tách mảng trong numpy. Để tách một mảng thành nhiều mảng bạn phải truyền mảng và số cần chia mảng vào hàm array_split().
Ví dụ tách một mảng thành 3 phần như sau:
import numpy as np
arr = np.array([1,2,3,4,5,6,7,8])
arr_split = np.array_split(arr,3)
print(arr_split)
[array([1, 2, 3]), array([4, 5, 6]), array([7, 8])]
import numpy as np
arr = np.array([1,2,3,4,5,6,7,8])
arr_split = np.array_split(arr,3)
print(arr_split[0])
print(arr_split[1])
print(arr_split[2])
[1 2 3]
[4 5 6]
[7 8]
Numpy sử dụng phương thức array_split() để tách mảng 2 chiều. Cú pháp cũng giống như tách mảng một chiều. Bạn cần phải truyền mảng và số của mảng cần chia.
Ví dụ tách một mảng 2 chiều sau thành ba mảng 2 chiều như sau:
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])[array([[1, 2],[3, 4]]), array([[5, 6],[7, 8]]), array([[ 9, 10],[11, 12]])]
Sử dụng hàm hsplit() trong numpy để tách mảng theo dòng rows.
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])[array([[ 1],[ 3],[ 5],[ 7],[ 9],[11]]), array([[ 2],[ 4],[ 6],[ 8],[10],[12]])]
Sử dụng hàm vsplit() trong numpy để tách mảng theo cột column.
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])[array([[1, 2],[3, 4],[5, 6]]), array([[ 7, 8],[ 9, 10],[11, 12]])]
Sử dụng hàm dsplit() trong numpy để tách mảng theo chiều sâu depth.
Lưu ý : hàm dsplit() chỉ sử dụng cho mảng có số chiều từ 3 chiều trở lên. Nếu số chiều nhỏ hơn 3 chiều không thể sử dụng hàm dsplit().
import numpy as np
arr = np.array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]])[array([[[ 1], [ 3], [ 5]],[[ 7],[ 9],[11]]]), array([[[ 2],[ 4],[ 6]], [[ 8],[10], [12]]])]