Numpy Array Split

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à gì ?

Split array trong numpy là chia, tách một mảng thành nhiều mảng.

Ví dụ

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)

Kết quả :

[array([1, 2, 3, 4]), array([5, 6, 7, 8])]

Cách tách mảng trong numpy (Split array trong numpy).

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().

Cách tách mảng một chiều trong numpy.

Ví dụ tách một mảng thành 3 phần như sau:

Ví dụ

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)

Kết quả :

[array([1, 2, 3]), array([4, 5, 6]), array([7, 8])]

Truy cập tới các mảng sau khi tách mảng.

Ví dụ

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])

Kết quả :

[1 2 3]
[4 5 6]
[7 8]

Cách tách mảng 2 chiều trong numpy.

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:

Ví dụ

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
arr_split = np.array_split(arr,3)
print(arr_split)

Kết quả :

[array([[1, 2],[3, 4]]), array([[5, 6],[7, 8]]), array([[ 9, 10],[11, 12]])]

Cách tách mảng theo dòng trong numpy.

Sử dụng hàm hsplit() trong numpy để tách mảng theo dòng rows.

Ví dụ

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
arr_split = np.hsplit(arr,2)
print(arr_split)

Kết quả :

[array([[ 1],[ 3],[ 5],[ 7],[ 9],[11]]), array([[ 2],[ 4],[ 6],[ 8],[10],[12]])]

Cách tách mảng theo cột trong numpy.

Sử dụng hàm vsplit() trong numpy để tách mảng theo cột column.

Ví dụ

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
arr_split = np.vsplit(arr,2)
print(arr_split)

Kết quả :

[array([[1, 2],[3, 4],[5, 6]]), array([[ 7,  8],[ 9, 10],[11, 12]])]

Cách tách mảng theo chiều sâu (depth) trong numpy.

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().

Ví dụ

import numpy as np

arr = np.array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]])
arr_split = np.dsplit(arr,2)
print(arr_split)

Kết quả :

[array([[[ 1], [ 3], [ 5]],[[ 7],[ 9],[11]]]), array([[[ 2],[ 4],[ 6]], [[ 8],[10], [12]]])]