Chia mảng NumPy

Chia mảng NumPy

Chia là phản động của kết nối.

Kết nối (Joining) là việc hợp nhất nhiều mảng thành một, chia (Spliting) là chia một mảng thành nhiều phần.

Chúng ta sử dụng array_split() Chia mảng, truyền vào mảng cần chia và số lượng chia.

Mô Hình

Chia mảng thành 3 phần:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr)

Chạy Mô Hình

Chú ý:Giá trị trả về là một mảng chứa ba mảng.

Nếu số phần tử trong mảng ít hơn số lượng yêu cầu, nó sẽ điều chỉnh từ cuối.

Mô Hình

Chia mảng thành 4 phần:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)

Chạy Mô Hình

Lưu ý:Chúng ta cũng có split() Phương pháp có thể sử dụng, nhưng khi các phần tử của mảng nguồn ít hơn để chia, nó sẽ không điều chỉnh phần tử, như ví dụ trên.array_split() Làm việc bình thường, nhưng split() sẽ thất bại.

Chia thành mảng

array_split() Giá trị trả về của phương pháp là một mảng chứa mỗi phần chia.

Nếu chia một mảng thành 3 mảng, bạn có thể truy cập chúng từ kết quả như bất kỳ phần tử mảng nào:

Mô Hình

Truy cập vào mảng đã chia:

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

Chạy Mô Hình

Chia mảng hai chiều

Khi chia mảng hai chiều, vui lòng sử dụng cùng cú pháp.

Sử dụng array_split() Phương pháp, truyền vào mảng cần chia và số lượng muốn chia.

Mô Hình

Chia mảng 2-D này thành ba mảng 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)

Chạy Mô Hình

Ví dụ trên trả về ba mảng 2-D.

Hãy xem một ví dụ khác, lần này mỗi phần tử của mảng 2-D chứa 3 phần tử.

Mô Hình

Chia mảng 2-D này thành ba mảng 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)

Chạy Mô Hình

Ví dụ trên trả về ba mảng 2-D.

Ngoài ra, bạn có thể chỉ định trục để chia.

Ví dụ dưới đây cũng trả về ba mảng 2-D, nhưng chúng được chia theo hàng (axis=1).

Mô Hình

Chia mảng 2-D này theo hàng thành ba mảng 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)

Chạy Mô Hình

Một giải pháp khác là sử dụng với hstack() Ngược lại hsplit().

Mô Hình

Sử dụng phương pháp hsplit() để chia mảng 2-D theo hàng thành ba mảng 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)

Chạy Mô Hình

Lưu ý:vsplit()dsplit() Bạn có thể sử dụng với vstack()dstack() Phương Pháp Thay Thế Tương Tự