Pandas & NumPy Academy · Pelajaran

Pemotongan dan Pengindeksan Array

Pilih elemen, baris, kolom, dan subarray individual menggunakan notasi bilangan bulat dan slice pada array multidimensi

Pelajaran 4 dari 413 langkah

Pemotongan dan Pengindeksan Array adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.

Pengindeksan Bilangan Bulat pada Array 1-D

Array 1-D diindeks seperti list: a[0] adalah elemen pertama, a[-1] adalah elemen terakhir. Pengindeksan mengembalikan satu skalar, dan bilangan negatif dihitung dari akhir.

import numpy as np

a = np.array([10, 20, 30, 40, 50])
print(a[0])    # 10
print(a[-1])   # 50
print(a[2])    # 30

Slicing Array 1-D

Slicing menggunakan start:stop:step seperti list, tetapi slicing NumPy mengembalikan view — bukan salinan. Jika Anda mengubah hasil slicing, array asli juga berubah, jadi gunakan .copy() jika diperlukan.

import numpy as np

a = np.arange(10)  # [0 1 2 3 4 5 6 7 8 9]
print(a[2:7])      # [2 3 4 5 6]
print(a[::2])      # [0 2 4 6 8]
print(a[::-1])     # [9 8 7 6 5 4 3 2 1 0]

Pengindeksan Array 2-D

Untuk array 2-D, gunakan sintaks koma: a[row, col]. Titik dua tunggal berarti semua elemen pada sumbu tersebut, sehingga a[0, :] mengambil seluruh baris dan a[:, 1] mengambil seluruh kolom.

import numpy as np

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

print(m[1, 2])     # 6  (row 1, col 2)
print(m[0, :])     # [1 2 3]  first row
print(m[:, 1])     # [2 5 8]  second column

Slicing Array 2-D

Berikan dua slicing untuk mengambil blok persegi panjang: a[0:2, 1:3] mengambil baris dan kolom tersebut. Hasilnya adalah view, sehingga perubahan diteruskan ke array asli.

import numpy as np

m = np.arange(16).reshape(4, 4)
print(m)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]
#  [12 13 14 15]]

print(m[1:3, 1:3])
# [[ 5  6]
#  [ 9 10]]

Pengindeksan Boolean

Teruskan array boolean untuk mempertahankan hanya elemen yang ditandai True. Pengindeksan boolean selalu mengembalikan salinan dan merupakan cara standar untuk memfilter data.

import numpy as np

a = np.array([3, 7, 2, 9, 1, 6])
mask = a > 4
print(mask)     # [False  True False  True False  True]
print(a[mask])  # [7 9 6]

# Equivalent one-liner
print(a[a > 4])  # [7 9 6]

Fancy Indexing dengan Array Bilangan Bulat

Fancy indexing memungkinkan Anda memilih elemen pada posisi apa pun dengan list bilangan bulat — dalam urutan apa pun, bahkan dengan pengulangan. Operasi ini selalu mengembalikan salinan.

import numpy as np

a = np.array([10, 20, 30, 40, 50])
idx = [4, 1, 3]
print(a[idx])    # [50 20 40]

# Selecting specific rows from a 2D array
m = np.arange(20).reshape(4, 5)
print(m[[0, 2], :])  # rows 0 and 2

np.where untuk Pemilihan Bersyarat

np.where(condition, x, y) memilih dari x saat kondisi bernilai True dan dari y saat bernilai False — cara cepat tanpa loop untuk memilih nilai pada setiap elemen.

import numpy as np

a = np.array([5, -3, 8, -1, 2])
result = np.where(a > 0, a, 0)  # keep positives, zero negatives
print(result)  # [5 0 8 0 2]

# np.where with one argument returns indices of True elements
idx = np.where(a > 0)
print(idx)     # (array([0, 2, 4]),)

Slicing adalah View — Hati-Hati!

Perhatian: karena slicing menghasilkan view, mengubah hasilnya juga mengubah array asli. Memerlukan bagian yang mandiri? Panggil .copy() pada hasil slicing terlebih dahulu. ⚠️

import numpy as np

original = np.arange(6)
view = original[2:5]   # view, not copy
view[:] = 99
print(original)  # [ 0  1 99 99 99  5]  -- original changed!

safe = original[2:5].copy()  # true copy
safe[:] = 0
print(original)  # [ 0  1 99 99 99  5]  -- unchanged

Pengindeksan Array 3-D

Array dapat memiliki jumlah dimensi berapa pun. Untuk array 3-D, Anda mengindeks dengan tiga posisi: a[depth, row, col] — hal yang umum saat menangani sekumpulan gambar.

import numpy as np

t = np.arange(24).reshape(2, 3, 4)
print(t.shape)       # (2, 3, 4)
print(t[0, :, :])    # first 'plane' -- shape (3, 4)
print(t[1, 2, 3])    # scalar at depth 1, row 2, col 3

Menetapkan Nilai melalui Pengindeksan

Bentuk pengindeksan apa pun dapat digunakan di sisi kiri = untuk mengubah nilai secara langsung — slicing, mask, atau indeks fancy. Tetapkan sebuah skalar dan NumPy akan menyebarkannya ke setiap posisi.

import numpy as np

a = np.zeros(8)
a[2:5] = 1.0          # slice assignment
print(a)  # [0. 0. 1. 1. 1. 0. 0. 0.]

a[a == 0] = -1.0      # boolean assignment
print(a)  # [-1. -1.  1.  1.  1. -1. -1. -1.]

Ellipsis dan np.newaxis

np.newaxis (atau None) menambahkan sumbu berukuran 1, mengubah array (5,) menjadi vektor kolom (5, 1) — persiapan yang umum sebelum broadcasting.

import numpy as np

t = np.ones((2, 3, 4))
print(t[..., 0].shape)   # (2, 3) -- last axis fixed at 0

a = np.array([1, 2, 3])
print(a.shape)                 # (3,)
print(a[:, np.newaxis].shape)  # (3, 1) column vector

Pemeriksaan Singkat

Uji pemahaman Anda tentang slicing dan pengindeksan array NumPy dari pelajaran ini.

Rangkuman Pelajaran

Kerja bagus! Slicing menghasilkan view yang berbagi memori, pengindeksan boolean memfilter dan membuat salinan, sedangkan fancy indexing mengambil elemen apa pun yang Anda tentukan. Berikutnya: fungsi universal.

Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemotongan dan Pengindeksan Array” gratis?

Ya — teks lengkap “Pemotongan dan Pengindeksan Array” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pemotongan dan Pengindeksan Array”?

Pilih elemen, baris, kolom, dan subarray individual menggunakan notasi bilangan bulat dan slice pada array multidimensi Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?

Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Pemotongan dan Pengindeksan Array” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?

Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Array NumPy
  2. Atribut dan Pemeriksaan Array
  3. Aritmetika Per Elemen
  4. Pemotongan dan Pengindeksan Array
← Kembali ke Pandas & NumPy Academy