Mảng tách NumPy


Tách Mảng NumPy

Chia tách là hoạt động ngược lại của Gia nhập.

Nối ghép nhiều mảng thành một và Chia tách sẽ chia một mảng thành nhiều mảng.

Chúng tôi sử dụng array_split()để tách mảng, chúng tôi chuyển cho nó mảng mà chúng tôi muốn tách và số lần tách.

Thí 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)

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

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

Thí 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)

Lưu ý: Chúng tôi cũng có split()sẵn phương thức 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 để tách như trong ví dụ trên, array_split()hoạt động đúng cách nhưng split()sẽ không thành công.



Chia thành các mảng

Giá trị trả về của array_split()phương thức 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:

Thí dụ

Truy cập các mảng đã tách:

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

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 array_split()phương thức, truyền vào mảng bạn muốn tách và số lần tách bạn muốn thực hiện.

Thí 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)

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ử.

Thí 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)

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 chia xung quanh.

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

Thí 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)

Một giải pháp thay thế đang sử dụng hsplit()ngược lại với hstack()

Thí dụ

Sử dụng hsplit()phương pháp để 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)

Lưu ý: Các phương án tương tự thay thế cho vstack()dstack()có sẵn dưới dạng vsplit()dsplit().