Mảng chia NumPy
Tách mảng NumPy
Tách là hoạt động ngược lại của Tham gia.
Việc nối sẽ hợp nhất nhiều mảng thành một và Tách sẽ chia một mảng thành nhiều mảng.
Chúng tôi sử dụng array_split()
để chia mảng, chúng tôi chuyển cho nó mảng mà chúng tôi muốn chia và số lần chia.
Ví dụ
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)
Hãy tự mình thử »Lưu ý: Giá trị trả về là danh sách chứa ba mảng.
Nếu mảng có ít phần tử hơn yêu cầu thì nó sẽ điều chỉnh từ cuối cho phù hợp.
Ví dụ
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)
Hãy tự mình thử » Lưu ý: Chúng tôi cũng có sẵn phương thức split()
nhưng nó sẽ không điều chỉnh các phần tử khi các phần tử ít hơn trong mảng nguồn để phân tách như ví dụ trên, array_split()
hoạt động bình thường nhưng split()
sẽ thất bại.
Chia thành mảng
Giá trị trả về của phương thức array_split()
là một mảng chứa mỗi phần tách dưới dạng một mảng.
Nếu bạn chia một mảng thành 3 mảng, bạn có thể truy cập chúng từ kết quả giống như bất kỳ phần tử mảng nào:
Ví dụ
Truy cập các mảng được 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])
Hãy tự mình thử »Tách mảng 2-D
Sử dụng cú pháp tương tự khi tách mảng 2-D.
Sử dụng phương thức array_split()
, truyền vào mảng bạn muốn chia và số lần chia bạn muốn thực hiện.
Ví dụ
Chia mảng 2-D 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)
Hãy tự mình thử »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ử trong mảng 2-D chứa 3 phần tử.
Ví dụ
Chia mảng 2-D 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)
Hãy tự mình thử »Ví dụ trên trả về ba mảng 2-D.
Ngoài ra, bạn có thể chỉ định trục nào bạn muốn thực hiện phân chia.
Ví dụ bên dưới cũng trả về ba mảng 2-D nhưng chúng được chia dọc theo hàng (trục=1).
Ví dụ
Chia mảng 2-D thành ba mảng 2-D dọc theo hàng.
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)
Hãy tự mình thử » Một giải pháp thay thế là sử dụng hsplit()
đối diện với hstack()
Ví dụ
Sử dụng phương thức hsplit()
để chia mảng 2-D thành ba mảng 2-D dọc theo hàng.
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)
Hãy tự mình thử » Lưu ý: Các lựa chọn thay thế tương tự cho vstack()
và dstack()
có sẵn dưới dạng vsplit()
và dsplit()
.