Bagaimana Anda membagi array menjadi dua bagian dengan python?

Dalam posting ini kita akan melihat bagaimana membagi array numpy 2D menggunakan split, array_split , hsplit, vsplit dan dsplit

Fungsi pemisahan ini memungkinkan Anda mempartisi array dalam berbagai bentuk dan ukuran serta mengembalikan daftar Subarrays

  • membelah(). Pisahkan array menjadi beberapa sub-array dengan ukuran yang sama
  • array_split(). Itu Membagi array menjadi beberapa sub-array dengan ukuran yang sama atau hampir sama. Tidak menimbulkan pengecualian jika pembagian yang sama tidak dapat dilakukan
  • hsplit(). Membagi array menjadi beberapa sub-array secara horizontal (berdasarkan kolom)
  • vsplit(). Itu Membagi array menjadi beberapa sub-array secara vertikal (baris bijaksana)
  • dsplit(). Membagi array menjadi beberapa sub-array di sepanjang sumbu ke-3 (kedalaman)

Membelah

Metode ini membutuhkan tiga argumen berikut dan mengembalikan daftar Sub array. Array akan dibagi menjadi N array yang sama sepanjang sumbu. Jika pemisahan seperti itu tidak memungkinkan, kesalahan akan muncul

Himpunan. Objek ndarray untuk indeks_atau_bagian partisi. sumbu array int atau 1D. sumbu sepanjang yang untuk membagi

Pisahkan Array 1D

Mari kita buat array 1D terlebih dahulu

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

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

Mari kita bagi array 1-D di atas menjadi 5 bagian yang sama menggunakan metode numpy split()

np.split(x, 5)

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

Selanjutnya kita akan melewati array 1-D untuk partisi x i. e. daftar indeks di mana Array akan dibagi menjadi sub-array

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

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

Kami melewati daftar indeks 1D [4, 6, 7, 9] untuk partisi sehingga x dibagi menjadi subarray berikut

Partisi 1. Indeks 0 hingga 3 karena elemen pertama dalam daftar indeks 1D adalah 4 array([0, 1, 2, 3])

Partisi ke-2. Indeks 4 hingga 5 antara elemen ke-1 dan ke-2 dari daftar indeks 1D array([4,5])

Partisi ke-3. Indeks 6 hingga 6 antara elemen ke-2 dan ke-3 dari daftar indeks 1D array([6])

Partisi ke-4. Indeks 7 hingga 8 antara elemen ke-3 dan ke-4 dari daftar indeks 1D array([7,8])

Partisi ke-5. Indeks 9 hingga terakhir antara elemen ke-4 dan indeks terakhir dari array daftar indeks ([9])

Pisahkan Array 2D

Mari kita buat array 2D terlebih dahulu

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

Kami akan membagi larik 2D di atas menjadi Sub larik menggunakan daftar indeks [1,3]

np.split(x, [1,3])
_

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

Partisi 1. Indeks 0 sepanjang sumbu = 0 karena elemen pertama dalam daftar indeks adalah 1 array([0,1,2,3])

Partisi ke-2. Indeks 1 hingga 2 sepanjang sumbu = 0 antara elemen ke-1 dan ke-3 dalam array daftar indeks ([0,1,2,3])

Partisi ke-3. Indeks 3 sampai 3 sepanjang sumbu = 0 antara elemen ke-3 daftar indeks dan indeks terakhir array 2D i. e. 3 larik([0,1,2,3])

Array_Split

Metode ini sama dengan split di atas dan satu-satunya perbedaan adalah memungkinkan partisi yang tidak sama juga

Berikut adalah array 2D yang akan kita bagi menjadi subarray yang tidak sama

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

Mari kita bagi menjadi 3 jadi pembagian yang sama tidak mungkin jadi mari kita lihat cara kerjanya

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

jika l adalah panjang Array dan n adalah no yang diharapkan. partisi dari array kemudian

ia mengembalikan l % n sub-array berukuran l//n + 1 yang merupakan 1 sub-array berukuran 2 dan sub-barray pertama di atas adalah array([[0, 1, 2, 3],[4, 5, 6, 7

Dua subarray lainnya berukuran l//n i. e. 1 dan itu memberikan dua sub array ini array([[ 8, 9, 10, 11]]), array([[12, 13, 14, 15]])

Pisahkan Array berdasarkan kolom menggunakan hsplit

Membagi array menjadi beberapa sub-array secara horizontal (bijaksana kolom). hsplit sama dengan split dengan sumbu=1

Larik selalu terbagi sepanjang sumbu kedua terlepas dari dimensi larik

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

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

Selanjutnya kita akan membagi array di atas pada indeks 2

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

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

Ini membagi larik 5×4 menjadi dua larik 5X2

Mari berikan daftar indeks untuk dibagi

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

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

Ini terbagi menjadi 3 subarray. Yang pertama berukuran 5X3 dan yang kedua berukuran 5X1 dan yang ketiga adalah array Kosong

Kita sudah membahas ini yang pertama terbagi antara 0 dan 2 karena indeks pertama untuk pemisahan adalah 3 dan Kedua antara indeks 3 dan 4 karena elemen kedua adalah 5 dan terakhir apa pun di luar indeks 5

Pisahkan array dengan baris menggunakan vsplit

Membagi array menjadi beberapa sub-array secara vertikal (berdasarkan baris)

np.split(x, 5)
7 sama dengan 
np.split(x, 5)
8 dengan sumbu=0 (default), larik selalu dipisahkan sepanjang sumbu pertama terlepas dari dimensi larik

Ini berfungsi persis sama dengan fungsi split yang dibahas di atas

Pisahkan Array sepanjang sumbu Ketiga i. e. sumbu = 2 menggunakan dsplit

Pisahkan array menjadi beberapa sub-array di sepanjang sumbu ke-3 (kedalaman)

dsplit sama dengan split dengan sumbu=2. Larik selalu dibagi sepanjang sumbu ketiga asalkan dimensi larik lebih besar dari atau sama dengan 3

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

np.split(x, 5)
0

Mari pisahkan array ini di sepanjang daftar indeks berikut [2,3]

np.split(x, 5)
1

np.split(x, 5)
2

Jadi itu membagi matriks 2x2x6 menjadi tiga ukuran subarray. 2x2x2, 2x2x1 dan 2x2x3

Pisahkan Array pada Nilai

jika kita ingin membagi array pada nilai tertentu maka gunakan saja np. di mana menemukan indeks dari nilai itu dan meneruskannya sebagai parameter untuk pemisahan

np.split(x, 5)
_3

np.split(x, 5)
_4

Mari kita pisahkan array ini pada nilai 6. Jadi pertama-tama kita akan menentukan indeks elemen ini dalam array menggunakan np. dimana() metode

Bagaimana Anda membagi array menjadi dua dengan Python?

array_split() method dengan Python digunakan untuk membagi array menjadi beberapa sub-array dengan ukuran yang sama. Di Python, array adalah struktur data yang digunakan untuk menyimpan banyak item dengan tipe yang sama secara bersamaan. Array berguna ketika berhadapan dengan banyak nilai dari tipe data yang sama.

Bagaimana Anda membagi array menjadi dua bagian?

Solusi sederhananya adalah menjalankan dua putaran untuk membagi larik dan memeriksa apakah mungkin untuk membagi larik menjadi dua bagian sehingga jumlah bagian_pertama .

Bagaimana Anda membagi array menjadi dua dengan Python?

Kasus 1. membagi daftar menjadi dua menggunakan python .
Dapatkan panjang daftar menggunakan fungsi len()
Jika panjang bagian tidak diberikan, bagi panjang daftar dengan 2 menggunakan operator lantai untuk mendapatkan indeks tengah daftar
Iris daftar menjadi dua bagian menggunakan [. middle_index] dan [middle_index. ]