Hướng dẫn split array into subarrays python - chia mảng thành các mảng con python


Tách mảng numpy

Tách là hoạt động ngược của tham gia.

Tham gia hợp nhất nhiều mảng thành một và chia tách một mảng thành nhiều mảng.

Chúng tôi sử dụng

[array([0, 1]), array([2, 3]), array([4, 5]), array([6, 7]), array([8, 9])]
3 để phân tách mảng, chúng tôi vượt qua mảng chúng tôi muốn chia và số lượng chia tách.

Thí dụ

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

nhập khẩu NUMPY dưới dạng NP

mảng = np.array ([1, 2, 3, 4, 5, 6]))

newarr = np.array_split (mảng, 3)

print(newarr)

Hãy tự mình thử »

Lưu ý: Giá trị trả về là một mảng chứa ba mảng. The return value is an array containing three arrays.

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

Thí dụ

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

nhập khẩu NUMPY dưới dạng NP

mảng = np.array ([1, 2, 3, 4, 5, 6]))

newarr = np.array_split (mảng, 3)

Hãy tự mình thử »

Hãy tự mình thử »

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

[array([0, 1]), array([2, 3]), array([4, 5]), array([6, 7]), array([8, 9])]
4 available but it will not adjust the elements when elements are less in source array for splitting like in example above,
[array([0, 1]), array([2, 3]), array([4, 5]), array([6, 7]), array([8, 9])]
3 worked properly but
[array([0, 1]), array([2, 3]), array([4, 5]), array([6, 7]), array([8, 9])]
4 would fail.



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

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

newarr = np.array_split (mảng, 4)

Thí dụ

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

nhập khẩu NUMPY dưới dạng NP

mảng = np.array ([1, 2, 3, 4, 5, 6]))

newarr = np.array_split (mảng, 3)

print(newarr[0])print(newarr[1])print(newarr[2])
print(newarr[1])
print(newarr[2])

Hãy tự mình thử »


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.

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

Thí dụ

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

nhập khẩu NUMPY dưới dạng NP

mảng = np.array ([1, 2, 3, 4, 5, 6]))

newarr = np.array_split (mảng, 3)

print(newarr)

Hãy tự mình thử »

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.

Thí dụ

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

nhập khẩu NUMPY dưới dạng NP

mảng = np.array ([1, 2, 3, 4, 5, 6]))

newarr = np.array_split (mảng, 3)

print(newarr)

Hãy tự mình thử »

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.

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

Thí dụ

newarr = np.array_split (mảng, 4)

nhập khẩu NUMPY dưới dạng NP

mảng = np.array ([1, 2, 3, 4, 5, 6]))

newarr = np.array_split (mảng, 3)

Hãy tự mình thử »

Hãy tự mình thử »

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

Thí dụ

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

nhập khẩu NUMPY dưới dạng NP

mảng = np.array ([1, 2, 3, 4, 5, 6]))

newarr = np.array_split (mảng, 3)

Hãy tự mình thử »

Hãy tự mình thử »

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

np.split(x, [4, 6, 7, 9])
2 and
np.split(x, [4, 6, 7, 9])
3 are available as
np.split(x, [4, 6, 7, 9])
4 and
np.split(x, [4, 6, 7, 9])
5.



6 phút đọc

Trong bài đăng này, chúng ta sẽ thấy cách chia một mảng 2D Numpy bằng cách sử dụng Split, Array_Split, HSplit, VSplit và DSplit.

Các chức năng phân chia này cho phép bạn phân vùng mảng theo hình dạng và kích thước khác nhau và danh sách trả về Subarrays

  • Split (): Chia một mảng thành nhiều mảng phụ có kích thước bằng nhau: Split an array into multiple sub-arrays of equal size
  • Array_Split (): Nó chia một mảng thành nhiều mảng phụ có kích thước bằng hoặc gần bằng nhau. Không nêu ra một ngoại lệ nếu một bộ phận bình đẳng không thể được thực hiện.: It Split an array into multiple sub-arrays of equal or near-equal size. Does not raise an exception if an equal division cannot be made.
  • hsplit (): chia một mảng thành nhiều phần phụ theo chiều ngang (khôn ngoan cột).: Splits an array into multiple sub-arrays horizontally (column-wise).
  • vsplit (): Nó chia mảng thành nhiều mảng phụ theo chiều dọc (hàng khôn ngoan).: It Split array into multiple sub-arrays vertically (row wise).
  • dsplit (): chia một mảng thành nhiều mảng phụ dọc theo trục thứ 3 (độ sâu).: Splits an array into multiple sub-arrays along the 3rd axis (depth).

Tách ra

Phương pháp này thực hiện sau ba đối số và danh sách trả về các mảng phụ. Mảng sẽ được chia thành n mảng bằng nhau dọc theo trục. Nếu không thể phân chia như vậy, một lỗi được nêu ra

Mảng: một đối tượng ndarray cho phân vùng Ictices_or_sections: Int hoặc 1D Axis: Trục: An ndarray object for partition indices_or_sections: int or 1D array axis: the axis along which to split

Tách mảng 1D

Hãy để tạo ra một mảng 1D trước tiên

import numpy as np
x = np.arange(10)
x

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

Hãy để phân chia mảng 1-D trên thành 5 phần bằng cách sử dụng phương thức numpy split ()

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

Tiếp theo, chúng tôi sẽ vượt qua một mảng 1-D cho phân vùng của x, tức là danh sách các chỉ số dọc theo mảng nào được chia thành các mảng con

np.split(x, [4, 6, 7, 9])

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

Chúng tôi đã vượt qua danh sách chỉ số 1D [4, 6, 7, 9] để phân vùng để X được chia thành Subarrays sau:

Phân vùng đầu tiên: Chỉ mục 0 đến 3 vì phần tử 1 trong danh sách chỉ số 1D là 4 mảng ([0, 1, 2, 3])

Phân vùng thứ 2: Chỉ mục 4 đến 5 trong phần tử 1 và 2 của mảng danh sách chỉ số 1D ([4,5])

Phân vùng thứ 3: Chỉ mục 6 đến 6 giữa phần tử thứ 2 và thứ 3 của mảng danh sách chỉ số 1D ([6])

Phân vùng thứ 4: Chỉ mục 7 đến 8 giữa phần tử thứ 3 và thứ 4 của mảng danh sách chỉ số 1D ([7,8])

Phân vùng thứ 5: Chỉ mục 9 đến cuối cùng giữa phần tử thứ 4 và chỉ mục cuối cùng của mảng danh sách chỉ số ([9])

Tách mảng 2D

Hãy để tạo ra một mảng 2D trước tiên

x = np.arange(16).reshape(4,4)
x

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

Chúng tôi sẽ chia mảng 2D trên thành mảng phụ bằng danh sách chỉ số của [1,3]

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

Phân vùng đầu tiên: INDEX 0 dọc theo trục = 0 vì phần tử 1 trong danh sách chỉ số là 1 mảng ([0,1,2,3]))

Phân vùng thứ 2: INDEX 1 đến 2 dọc theo trục = 0 trong phần tử thứ 1 và thứ 3 trong mảng danh sách chỉ số ([0,1,2,3])

Phân vùng thứ 3: Chỉ mục 3 đến 3 dọc theo trục = 0 giữa phần tử thứ 3 của danh sách chỉ số và chỉ mục cuối cùng của mảng 2D, tức là 3 mảng ([0,1,2,3])

Array_Split

Phương pháp này giống như phân chia ở trên và chỉ có sự khác biệt là nó cũng cho phép phân vùng không đồng đều

Đây là một mảng 2D mà chúng tôi sẽ chia thành Subarrays không đồng đều

x = np.arange(16).reshape(4,4)
x

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

Hãy để chia thành 3 để không thể phân vùng bằng nhau, vì vậy hãy để xem cách thức hoạt động của nó

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

Nếu L là chiều dài của mảng và N là không mong đợi. của parition of the mảng sau đó

Nó trả về l % n ròng phụ có kích thước l // n + 1, là 1 subarray có kích thước 2 và con con đầu tiên ở trên là mảng ([[0, 1, 2, 3], [4, 5, 6, 7, 7, ]])

Hai subarrays khác sẽ có kích thước l // n tức là 1 và điều đó cho hai mảng mảng phụ này ([[8, 9, 10, 11]]), mảng ([[12, 13, 14, 15]])

Chia mảng theo cột bằng cách sử dụng hsplit

Chia một mảng thành nhiều phần phụ theo chiều ngang (cột khôn ngoan). HSPLIT tương đương với phân tách với trục = 1

Mảng luôn được chia theo trục thứ hai bất kể kích thước mảng

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

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

Tiếp theo, chúng tôi sẽ phân chia mảng trên tại INDEX 2

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

Điều này chia một mảng 5 × 4 thành hai mảng 5x2

Hãy cùng đưa ra một danh sách các chỉ số để chia

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

Nó chia thành 3 Subarrays. Cái đầu tiên có kích thước 5x3 và thứ hai của kích thước 5x1 và thứ ba là một mảng trống

Chúng tôi đã thảo luận điều này rằng đầu tiên nó chia tách từ 0 đến 2 vì chỉ mục đầu tiên cho phân chia là 3 và thứ hai giữa các chỉ số 3 và 4 vì phần tử thứ hai là 5 và cuối cùng bất cứ điều gì ngoài Chỉ số 5

Tách mảng theo hàng bằng VSPLIT

Chia một mảng thành nhiều mảng phụ theo chiều dọc (hàng khôn)

________ 36 & nbsp; tương đương với & nbsp; ________ 37 & nbsp; với & nbsp; trục = 0 & nbsp;

Điều này hoạt động giống hệt như chức năng phân chia đã thảo luận ở trên

Tách các mảng dọc theo trục thứ ba, tức là trục = 2 bằng cách sử dụng DSplit

Chia mảng thành nhiều mảng phụ dọc theo trục thứ 3 (độ sâu)

DSplit tương đương với phân chia với trục = 2. Mảng luôn được phân chia dọc theo trục thứ ba với kích thước mảng lớn hơn hoặc bằng 3

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

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

Hãy để phân chia mảng này dọc theo danh sách các chỉ số sau [2,3]

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

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

Vì vậy, nó chia một ma trận 2x2x6 thành ba kích thước subarrays: 2x2x2, 2x2x1 và 2x2x3

Tách các mảng ở các giá trị

Nếu chúng ta muốn chia một mảng ở một giá trị cụ thể thì chỉ cần sử dụng np. Where để tìm chỉ mục của giá trị đó và truyền đó làm tham số để chia tách

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

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

Hãy để phân chia mảng này ở giá trị 6. Vì vậy, trước tiên chúng tôi sẽ xác định chỉ số của phần tử này trong mảng bằng phương thức np.where ()

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

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

Vì vậy, nó chia một ma trận 8 × 2 thành 3 mảng phụ không đồng đều có kích thước sau: 3 × 2, 3 × 2 và 2 × 2

Sự kết luận

Dưới đây là những điểm để tóm tắt việc học của chúng tôi về việc tách mảng bằng cách sử dụng Numpy

  • Chức năng chia tách () chia một mảng thành nhiều mảng phụ
  • Có thể được truyền một interger hoặc danh sách các chỉ số để chia tách
  • Chức năng chia () hoạt động dọc theo trục 0 hoặc 1
  • hàm mảng_split () chia mảng thành kích thước không đồng đều không giống như hàm split ()
  • Chức năng hsplit () có thể được sử dụng để phân chia một mảng theo cột. nó giống như hàm split () với trục = 1
  • hàm vSplit () giống như hàm split () với trục = 0 i.e. mặc định
  • DSplit () chia mảng thành nhiều mảng phụ dọc theo trục thứ 3, tức là trục = 2
  • Sử dụng hàm numpy.where () để phân chia mảng ở một giá trị cụ thể

Làm cách nào để chia một mảng thành K Subarrays?

Nhiệm vụ là chia mảng thành các phần K (subarray) sao cho tổng của các giá trị của tất cả Subarray là tối thiểu ...
Lấy tối đa từ Subarray đó ..
Trừ từng phần tử của subarray với mức tối đa ..
Lấy tổng của tất cả các giá trị sau khi trừ ..

Làm thế nào để bạn chia một mảng trong Python?

Sử dụng phương thức Array_Split (), vượt qua trong mảng bạn muốn chia và số lượng phân chia bạn muốn làm., pass in the array you want to split and the number of splits you want to do.

Làm thế nào để bạn chia một mảng đa chiều trong Python?

Một mảng cần nhập rõ ràng mô -đun mảng để khai báo.Một mảng 2D chỉ đơn giản là một mảng mảng.Phương thức numpy.array_split () trong python được sử dụng để chia một mảng 2D thành nhiều mảng con có kích thước bằng nhau.numpy. array_split() method in Python is used to split a 2D array into multiple sub-arrays of equal size.

Làm thế nào để bạn chia một ma trận trong một nửa python?

Hàm Hsplit () được sử dụng để chia một mảng thành nhiều phần phụ theo chiều ngang (khôn ngoan cột).HSplit tương đương với phân tách với trục = 1, mảng luôn được phân chia dọc theo trục thứ hai bất kể kích thước mảng.hsplit() function is used to split an array into multiple sub-arrays horizontally (column-wise). hsplit is equivalent to split with axis=1, the array is always split along the second axis regardless of the array dimension.