Chia mảng NumPy
- Trang Trước Kết nối mảng NumPy
- Trang Tiếp Theo Tìm kiếm 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ú ý: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)
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])
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)
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)
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)
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)
Lưu ý:vsplit()
Và dsplit()
Bạn có thể sử dụng với vstack()
Và dstack()
Phương Pháp Thay Thế Tương Tự
- Trang Trước Kết nối mảng NumPy
- Trang Tiếp Theo Tìm kiếm mảng NumPy