0Pricing
Python Academy · Pelajaran

Operasi Array dan Broadcasting

Lakukan aritmetika tervectorisasi dan pahami aturan broadcasting.

Operasi Array dan Broadcasting adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Aritmetika Tervectorisasi

NumPy menerapkan aritmetika per elemen ke seluruh larik tanpa perulangan Python—eksekusinya menggunakan kode C yang dioptimalkan.

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)    # [5 7 9]
print(a * b)    # [4 10 18]
print(a ** 2)   # [1 4 9]

Fungsi Universal (ufunc)

ufunc NumPy menerapkan fungsi C per elemen: np.sqrt, np.exp, np.log, np.sin, dan lain-lain.

import numpy as np

x = np.linspace(0, np.pi, 5)
print(np.sin(x))   # [0. 0.707 1. 0.707 0.]
print(np.exp([1.0, 2.0, 3.0]))   # [2.718 7.389 20.086]

Operasi Reduksi

Reduksi larik menjadi skalar (atau larik berdimensi lebih rendah) dengan np.sum, np.mean, np.max, np.min, np.std.

import numpy as np

m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(m))          # 21
print(np.sum(m, axis=0))  # [5 7 9]  — sum each column
print(np.sum(m, axis=1))  # [6 15]   — sum each row

Aturan Broadcasting

Broadcasting memperluas larik yang lebih kecil agar sesuai dengan larik yang lebih besar—tanpa menyalin data. Aturannya: dimensi disejajarkan dari kanan; dimensi berukuran 1 diperluas.

import numpy as np

a = np.array([[1], [2], [3]])  # shape (3,1)
b = np.array([10, 20, 30])     # shape (3,)

print(a + b)
# [[11 21 31]
#  [12 22 32]
#  [13 23 33]]

Operasi Skalar dengan Broadcasting

Skalar diterapkan melalui broadcasting ke semua elemen larik.

import numpy as np

arr = np.arange(6).reshape(2, 3)
print(arr + 10)
# [[10 11 12]
#  [13 14 15]]
print(arr * 0.5)
# [[0.  0.5 1. ]
#  [1.5 2.  2.5]]

Operasi Perbandingan dan Boolean

Perbandingan menghasilkan larik Boolean. Gabungkan dengan &, |, ~ (bukan and/or/not Python).

import numpy as np

arr = np.array([1, 5, 3, 8, 2])
print(arr > 3)           # [False  True False  True False]
print(arr[(arr > 2) & (arr < 7)])  # [5 3]

where()

np.where(condition, x, y) mengembalikan elemen dari x saat True dan dari y saat False.

import numpy as np

arr = np.array([-2, 3, -1, 4, 0])
result = np.where(arr >= 0, arr, 0)  # clip negatives to 0
print(result)   # [0 3 0 4 0]

Agregasi sepanjang Sumbu

Tentukan axis= untuk melakukan reduksi sepanjang dimensi tertentu dari larik multidimensi.

import numpy as np

data = np.arange(12).reshape(3, 4)
print(data.mean(axis=0))   # mean of each column → shape (4,)
print(data.mean(axis=1))   # mean of each row → shape (3,)

cumsum dan diff

np.cumsum menghitung jumlah kumulatif; np.diff menghitung selisih antara elemen-elemen berurutan.

import numpy as np

prices = np.array([100, 110, 105, 115])
print(np.cumsum(prices))          # [100 210 315 430]
print(np.diff(prices))            # [10 -5 10] (daily changes)

Operasi String Tervectorisasi

np.char menyediakan operasi string tervectorisasi pada larik string.

import numpy as np

words = np.array(["apple", "banana", "cherry"])
print(np.char.upper(words))       # ['APPLE' 'BANANA' 'CHERRY']
print(np.char.startswith(words, "a"))  # [True False False]

Performa dibandingkan Daftar Python

NumPy 10–100 kali lebih cepat daripada perulangan Python yang setara untuk pekerjaan numerik karena eksekusinya berlangsung dalam C tanpa overhead interpreter Python.

import numpy as np, time

n = 1_000_000

start = time.perf_counter()
python_sum = sum(i**2 for i in range(n))
print(f"Python: {time.perf_counter()-start:.3f}s")

arr = np.arange(n)
start = time.perf_counter()
numpy_sum = (arr**2).sum()
print(f"NumPy:  {time.perf_counter()-start:.3f}s")

Pemeriksaan Cepat

Saat menambahkan larik berbentuk (3,1) ke larik berbentuk (3,), apa bentuk hasilnya?

Ringkasan

Operasi NumPy dijalankan per elemen dalam C (tanpa perulangan Python). Broadcasting memperluas bentuk yang kompatibel tanpa menyalin data. Gunakan axis= untuk melakukan reduksi sepanjang dimensi tertentu. ufunc (np.sin, np.exp, dan lain-lain) menerapkan operasi per elemen dengan kecepatan C.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Operasi Array dan Broadcasting” gratis?

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

Apa yang akan aku pelajari di “Operasi Array dan Broadcasting”?

Lakukan aritmetika tervectorisasi dan pahami aturan broadcasting. Kamu berlatih Python 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 Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python 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 2 dari 4.

Berapa lama pelajaran “Operasi Array dan Broadcasting” 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 Python Academy ini?

Ya. Setiap pelajaran Python 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. Array NumPy dan dtype
  2. Operasi Array dan Broadcasting
  3. Pengindeksan, Pemotongan, dan Pengindeksan Lanjutan
  4. Aljabar Linear dengan NumPy
← Kembali ke Python Academy