Dapatkah array diiris dengan python?

Pada bagian ini kita akan melihat pengindeksan dan pemotongan. Ini bekerja dengan cara yang mirip dengan pengindeksan dan pemotongan dengan daftar Python standar, dengan beberapa perbedaan

Berikut adalah video yang membahas topik ini

Mengindeks array

Pengindeksan digunakan untuk mendapatkan elemen individu dari array, tetapi juga dapat digunakan untuk mendapatkan seluruh baris, kolom, atau bidang dari array multi-dimensi

Pengindeksan dalam 1 dimensi

Kita dapat membuat array numpy 1 dimensi dari daftar seperti ini

import numpy as np

a1 = np.array[[1, 2, 3, 4]]

print[a1]  # [1, 2, 3, 4]

Kita dapat mengindeks ke dalam array ini untuk mendapatkan elemen individual, persis sama dengan daftar atau tuple normal

print[a1[0]] # 1
print[a1[2]] # 3
_

Pengindeksan dalam 2 dimensi

Kita dapat membuat array numpy 2 dimensi dari daftar daftar python, seperti ini

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]

Berikut adalah diagram dari array

Kita dapat mengindeks elemen array menggunakan dua indeks - i memilih baris, dan j memilih kolom

print[a2[2, 1]] # 8

Perhatikan sintaksnya - nilai i dan j keduanya berada di dalam tanda kurung siku, dipisahkan dengan koma [indeks sebenarnya adalah tupel [2, 1], tetapi pengepakan tupel digunakan]. Contoh mengambil baris 2, kolom 1, yang memiliki nilai 8. Ini dibandingkan dengan sintaks yang mungkin Anda gunakan dengan daftar 2D [yaitu daftar daftar]

v = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]

print[v[2][1]] # 8
_

Memilih baris atau kolom

Jika kami dapat menyediakan satu indeks, itu akan mengambil satu baris [nilai i] dan mengembalikannya sebagai array peringkat 1

print[a2[2]] # [7, 8, 9]

Itu sangat mirip dengan apa yang akan terjadi dengan daftar 2D. Namun, numpy memungkinkan kita untuk memilih satu kolom juga

print[a2[:, 1]] # [2, 5, 8]
_

Kami melompat ke depan sedikit untuk mengiris, nanti di tutorial ini, tetapi yang dimaksud dengan sintaks ini adalah

  • untuk nilai i, ambil semua nilai [. adalah irisan penuh, dari awal hingga akhir]
  • untuk nilai j ambil 1

Memberikan array ini [2, 5, 8]

Array yang Anda dapatkan kembali saat Anda mengindeks atau mengiris array numpy adalah tampilan dari array asli. Ini adalah data yang sama, hanya diakses dalam urutan yang berbeda. Jika Anda mengubah tampilan, Anda akan mengubah elemen terkait dalam larik asli

Pengindeksan dalam 3 dimensi

Kita dapat membuat array numpy 3 dimensi dari daftar daftar daftar python, seperti ini

import numpy as np

a3 = np.array[[[[10, 11, 12], [13, 14, 15], [16, 17, 18]],
               [[20, 21, 22], [23, 24, 25], [26, 27, 28]],
               [[30, 31, 32], [33, 34, 35], [36, 37, 38]]]]

Berikut adalah diagram dari array

Array 3D seperti tumpukan matriks

  • Indeks pertama, i, memilih matriks
  • Indeks kedua, j, memilih baris
  • Indeks ketiga, k, memilih kolom

Ini adalah diagram yang sama, sebarkan sedikit agar kita bisa melihat nilainya

Berikut adalah cara mengindeks nilai tertentu dalam larik 3D

print[a3[2, 0, 1]] # 31
_

Ini memilih indeks matriks 2 [matriks akhir], baris 0, kolom 1, memberikan nilai 31

Memilih baris atau kolom dalam larik 3D

Anda dapat mengakses setiap baris atau kolom dalam larik 3D. Ada 3 kasus

Kasus 1 - menentukan dua indeks pertama. Dalam hal ini, Anda memilih nilai i [matriks], dan nilai j [baris]. Ini akan memilih baris tertentu. Dalam contoh ini kita memilih baris 2 dari matriks 1

print[a3[1, 2]] # [26 27 28]
_

Kasus 2 - menentukan nilai i [matriks], dan nilai k [kolom], menggunakan irisan penuh [. ] untuk nilai j [baris]. Ini akan memilih kolom tertentu. Dalam contoh ini kami memilih kolom 1 dari matriks 0

print[a1[0]] # 1
print[a1[2]] # 3
_0

Kasus 3 - menentukan nilai j [baris], dan nilai k [kolom], menggunakan irisan penuh [. ] untuk nilai i [matriks]. Ini akan membuat baris dengan mengambil elemen yang sama dari setiap matriks. Dalam hal ini kita mengambil baris 1, kolom 2 dari setiap matriks

print[a1[0]] # 1
print[a1[2]] # 3
_1

Memilih matriks dalam array 3D

Jika kami hanya menentukan indeks i, numpy akan mengembalikan matriks yang sesuai. Kami akan menyebut kasus ini 1. Dalam contoh ini kita akan meminta matriks 2

print[a1[0]] # 1
print[a1[2]] # 3
_2

Kasus 2 jika kita hanya menentukan nilai j [menggunakan irisan penuh untuk nilai i], kita akan memperoleh matriks yang terbuat dari baris terpilih yang diambil dari setiap bidang. Dalam contoh ini kita akan mengambil baris 1

print[a1[0]] # 1
print[a1[2]] # 3
_3

Kasus 3 jika kita menentukan nilai k saja [menggunakan irisan penuh untuk nilai i dan j], kita akan memperoleh matriks yang dibuat dari kolom terpilih yang diambil dari setiap bidang. Dalam contoh ini kita akan mengambil kolom 0

print[a1[0]] # 1
print[a1[2]] # 3
_4

Mengiris array

Anda dapat mengiris array numpy adalah cara yang mirip dengan mengiris daftar - kecuali Anda dapat melakukannya di lebih dari satu dimensi

Seperti pengindeksan, array yang Anda dapatkan kembali saat Anda mengindeks atau mengiris array numpy adalah tampilan dari array asli. Ini adalah data yang sama, hanya diakses dalam urutan yang berbeda. Ini berbeda dengan daftar, di mana sebuah slice mengembalikan daftar yang benar-benar baru

Mengiris daftar - rekap

Hanya rekap singkat tentang cara mengiris bekerja dengan daftar Python normal. Misalkan kita memiliki daftar

print[a1[0]] # 1
print[a1[2]] # 3
_5

Kita bisa menggunakan slicing untuk mengambil sub-list, seperti ini

print[a1[0]] # 1
print[a1[2]] # 3
_6

Notasi irisan menentukan nilai awal dan akhir [mulai. akhir] dan menyalin daftar dari awal hingga tetapi tidak termasuk akhir

Kita dapat menghilangkan bagian awal, dalam hal ini potongan dimulai dari awal daftar. Kita dapat menghilangkan bagian akhir, sehingga potongan berlanjut ke bagian akhir daftar. Jika kita menghilangkan keduanya, potongan yang dibuat adalah salinan dari seluruh daftar

print[a1[0]] # 1
print[a1[2]] # 3
_7

Satu hal terakhir yang perlu diperhatikan adalah perbedaan antara indeks dan potongan dengan panjang 1

print[a1[0]] # 1
print[a1[2]] # 3
_8

Indeks mengembalikan elemen array, irisan mengembalikan daftar satu elemen

Mengiris array numpy 1D

Mengiris array numpy 1D hampir persis sama dengan mengiris daftar

print[a1[0]] # 1
print[a1[2]] # 3
_9

Satu-satunya hal yang perlu diingat jika itu [tidak seperti daftar] a1 dan b keduanya melihat data dasar yang sama [b adalah tampilan data]. Jadi jika Anda mengubah elemen di b, a1 akan terpengaruh [dan sebaliknya]

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]
0

Mengiris array 2D

Anda dapat mengiris larik 2D di kedua sumbu untuk mendapatkan subset persegi panjang dari larik asli. Sebagai contoh

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]
1

Ini memilih baris 1. [1 ke ujung bawah array] dan kolom 2. 4 [kolom 2 dan 3], seperti yang ditunjukkan di sini

Mengiris array 3D

Anda dapat mengiris larik 3D di semua 3 sumbu untuk mendapatkan subset berbentuk kubus dari larik asli

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]
2

Ini memilih

  • pesawat. 2 [2 pesawat pertama]
  • baris 1. [2 baris terakhir]
  • kolom. 2 [2 kolom pertama]

Seperti yang ditunjukkan di sini

Irisan penuh

Anda tentu saja dapat menggunakan irisan penuh. untuk memilih semua bidang, kolom, atau baris. Namun, untuk indeks tambahan, cukup hilangkan hitungan indeks sebagai irisan penuh. Jadi untuk array 2D

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]
_3

Untuk array 3D

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]
_4

Irisan vs pengindeksan

Seperti yang kita lihat sebelumnya, Anda dapat menggunakan indeks untuk memilih kolom atau baris bidang tertentu. Di sini kita memilih baris 1, kolom 2. 4

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]
5

Anda juga dapat menggunakan irisan dengan panjang 1 untuk melakukan hal serupa [irisan 1. 2 bukannya indeks 1]

import numpy as np

a2 = np.array[[[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]]]
6

Perhatikan perbedaan halus. Yang pertama membuat larik 1D, yang kedua membuat larik 2D dengan hanya satu baris

Jika menurut Anda artikel ini bermanfaat, Anda mungkin tertarik dengan buku Resep NumPy atau buku lain dari penulis yang sama

Bagaimana Anda memotong array dengan Python?

Anda dapat menggunakan metode pop[] untuk menghapus elemen dari larik.

Bisakah Anda memotong array?

potongan Array JavaScript[] . Metode slice[] memilih dari awal yang diberikan, hingga akhir yang diberikan [tidak termasuk]. Metode slice[] tidak mengubah array asli. The slice[] method returns selected elements in an array, as a new array. The slice[] method selects from a given start, up to a [not inclusive] given end. The slice[] method does not change the original array.

Apa yang bisa diiris dengan Python?

Python mendukung notasi irisan untuk jenis data sekuensial apa pun seperti daftar, string, tupel, byte, bytearray, dan rentang . Juga, setiap struktur data baru dapat menambahkan dukungannya juga. Ini sangat digunakan [dan disalahgunakan] di perpustakaan NumPy dan Pandas, yang sangat populer di Pembelajaran Mesin dan Ilmu Data.

Bisakah Anda mengiris array NumPy?

Mengiris dapat dilakukan dengan bantuan [. ] . Objek pengiris array NumPy dibuat dengan memberikan parameter start , stop , dan step ke fungsi pengiris bawaan. Objek pengiris ini diteruskan ke array untuk mengekstrak sebagian dari array.

Bài mới nhất

Chủ Đề