Operasi Vektorisasi pada Series
Lakukan aritmetika antara dua Series, tangani penyelarasan indeks secara otomatis, dan isi nilai yang hilang setelah penyelarasan dengan NaN
Operasi Vektorisasi pada Series adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Mengapa Operasi Terv vektorisasi?
Seperti NumPy, Series Pandas mendukung operasi terv vektorisasi yang menerapkan aritmetika, perbandingan, dan fungsi ke setiap elemen tanpa perulangan Python. Hal ini menghasilkan kode yang ringkas sekaligus cepat. Di balik layar, setiap operasi meneruskan pekerjaan ke rutin tingkat C milik NumPy, tetapi Pandas menambahkan keunggulan penting: penyelarasan indeks otomatis sebelum operasi dilakukan.
import pandas as pd
revenue = pd.Series([1000, 2000, 1500], index=['Jan', 'Feb', 'Mar'])
tax_rate = 0.2
net = revenue * (1 - tax_rate) # vectorized -- no loop
print(net)Aritmetika antara Dua Series
Ketika Anda menjumlahkan, mengurangkan, mengalikan, atau membagi dua Series, Pandas terlebih dahulu menyelaraskannya berdasarkan label indeks. Hanya posisi yang memiliki label pada kedua Series yang menghasilkan nilai; label yang tidak berpasangan menghasilkan NaN. Perilaku ini mencegah kesalahan tersembunyi akibat data yang tidak selaras — misalnya, saat menjumlahkan angka bulan Januari dari dua sumber data yang kebetulan disimpan dalam urutan berbeda.
import pandas as pd
a = pd.Series([10, 20, 30], index=['x', 'y', 'z'])
b = pd.Series([1, 2, 3], index=['y', 'z', 'w'])
print(a + b)
# w NaN
# x NaN
# y 21.0
# z 32.0Mengisi NaN dalam Operasi yang Selaras
Untuk mencegah penyebaran NaN dalam operasi yang tidak selaras, gunakan metode aritmetika seperti .add(), .sub(), .mul(), dan .div() dengan parameter fill_value=. Parameter ini mengganti label yang tidak ada pada salah satu Series dengan nilai tertentu sebelum operasi dilakukan — biasanya 0 untuk penjumlahan dan 1 untuk perkalian.
import pandas as pd
a = pd.Series([10, 20, 30], index=['x', 'y', 'z'])
b = pd.Series([1, 2, 3], index=['y', 'z', 'w'])
result = a.add(b, fill_value=0)
print(result)
# w 3.0
# x 10.0
# y 21.0
# z 32.0Aritmetika Skalar pada Series
Aritmetika dengan nilai skalar menerapkan operasi ke setiap elemen dan menghasilkan Series baru dengan indeks yang sama. Ini adalah bentuk vektorisasi paling sederhana: s + 5, s * 100, s ** 2. Aritmetika skalar tidak pernah menghasilkan NaN dan digunakan untuk konversi satuan, normalisasi, serta pemberian offset pada deret waktu.
import pandas as pd
prices_eur = pd.Series([1.0, 2.5, 4.0], index=['a', 'b', 'c'])
exchange = 1.08
prices_usd = prices_eur * exchange
print(prices_usd.round(2))
# a 1.08
# b 2.70
# c 4.32Menerapkan ufunc NumPy pada Series
ufunc NumPy dapat bekerja dengan lancar pada Series Pandas dan mengembalikan Series dengan indeks yang sama. Artinya, Anda dapat langsung memanggil np.sqrt(s), np.log1p(s), atau np.exp(s) pada Series tanpa mengubahnya menjadi array terlebih dahulu. Hasilnya adalah Series baru yang mempertahankan label asli.
import pandas as pd
import numpy as np
s = pd.Series([0, 1, 4, 9, 16], index=list('abcde'))
print(np.sqrt(s))
# a 0.0
# b 1.0
# c 2.0
# d 3.0
# e 4.0Operasi Perbandingan pada Series
Operator perbandingan (==, !=, >, <, >=, <=) mengembalikan Series boolean untuk setiap elemen. Operator ini menjadi dasar pemfilteran: Anda memberikan Series boolean kepada .loc untuk memilih baris yang cocok. Pandas juga menyelaraskan indeks saat membandingkan dua Series.
import pandas as pd
s = pd.Series([3, 7, 2, 9, 1], index=list('abcde'))
print(s > 4)
# a False
# b True
# c False
# d True
# e False
print(s[s > 4]) # b:7 d:9Merangkai Operasi Terv vektorisasi
Karena setiap operasi mengembalikan Series baru, Anda dapat merangkai beberapa transformasi dalam satu ekspresi. Cara ini mudah dibaca dan menghindari pembuatan variabel perantara yang tidak diperlukan. Untuk pipeline yang kompleks, pecah rangkaian tersebut menjadi beberapa baris menggunakan tanda kurung. Perangkaian merupakan padanan pemrograman fungsional di Pandas dengan data yang tidak dapat diubah.
import pandas as pd
import numpy as np
raw_scores = pd.Series([55, 80, 45, 90, 72])
normalised = (raw_scores - raw_scores.min()) / (raw_scores.max() - raw_scores.min())
print(normalised.round(2))
# 0 0.22
# 1 0.78
# 2 0.00
# 3 1.00
# 4 0.60Menangani NaN dalam Operasi Terv vektorisasi
NaN bersifat menular: operasi aritmetika apa pun yang melibatkan NaN akan menghasilkan NaN. Gunakan s.fillna(value) untuk menggantinya sebelum operasi, atau gunakan parameter skipna=True pada metode agregasi. Fungsi pd.isna(s) mengembalikan Series boolean yang menandai posisi NaN — gunakan fungsi ini untuk memeriksa data sebelum menghitung statistik.
import pandas as pd
import numpy as np
s = pd.Series([1.0, np.nan, 3.0, np.nan, 5.0])
print(s + 10)
# 0 11.0 2 13.0 4 15.0 -- NaN stays NaN
print(s.fillna(0) + 10)
# 0 11.0 1 10.0 2 13.0 3 10.0 4 15.0abs(), clip(), dan round() pada Series
Series Pandas menyediakan banyak metode yang mirip NumPy secara langsung: s.abs(), s.clip(lower, upper), dan s.round(decimals) semuanya mengembalikan Series baru dengan transformasi yang diterapkan pada setiap elemen. Metode-metode ini setara dengan pemanggilan ufunc NumPy, tetapi menggunakan sintaks metode serta mempertahankan indeks dan nama Series.
import pandas as pd
s = pd.Series([-2.5, 1.3, -0.7, 4.9, -3.1])
print(s.abs()) # [2.5 1.3 0.7 4.9 3.1]
print(s.clip(-2, 2)) # [-2. 1.3 -0.7 2. -2. ]
print(s.round(0)) # [-2. 1. -1. 5. -3.]pct_change() untuk Laju Pertumbuhan
s.pct_change() menghitung persentase perubahan antara elemen yang berurutan: (saat ini - sebelumnya) / sebelumnya. Elemen pertama bernilai NaN karena tidak memiliki nilai sebelumnya. Operasi ini merupakan cara standar untuk menghitung pertumbuhan dari bulan ke bulan, imbal hasil harian dalam keuangan, dan fitur laju perubahan untuk model deret waktu.
import pandas as pd
monthly_revenue = pd.Series([100, 120, 110, 140],
index=['Q1', 'Q2', 'Q3', 'Q4'])
growth = monthly_revenue.pct_change()
print(growth.round(3))
# Q1 NaN
# Q2 0.200
# Q3 -0.083
# Q4 0.273cumsum() dan cumprod() pada Series
s.cumsum() mengembalikan Series berisi total berjalan, sedangkan s.cumprod() mengembalikan hasil kali berjalan. Keduanya digunakan untuk menghitung pendapatan kumulatif, imbal hasil investasi majemuk, atau jumlah kata berjalan. Metode ini mempertahankan label indeks asli, sehingga Series kumulatif mudah digambarkan berdasarkan waktu atau kategori.
import pandas as pd
daily_sales = pd.Series([100, 150, 80, 200],
index=['Mon', 'Tue', 'Wed', 'Thu'])
print(daily_sales.cumsum())
# Mon 100
# Tue 250
# Wed 330
# Thu 530Pemeriksaan Cepat
Uji pemahaman Anda tentang operasi terv vektorisasi pada Series dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda mempelajari: operator aritmetika diterapkan pada setiap elemen Series tanpa perulangan, Pandas secara otomatis menyelaraskan dua Series berdasarkan label indeks sebelum melakukan operasi dan menempatkan NaN pada posisi yang tidak berpasangan, serta metode seperti fill_value, pct_change, dan cumsum memperluas operasi terv vektorisasi untuk tugas analitis. Selanjutnya, kita akan membahas metode Series yang berguna seperti describe, value_counts, dan map untuk membuat ringkasan dengan cepat.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Operasi Vektorisasi pada Series” gratis?
Ya — teks lengkap “Operasi Vektorisasi pada Series” 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 “Operasi Vektorisasi pada Series”?
Lakukan aritmetika antara dua Series, tangani penyelarasan indeks secara otomatis, dan isi nilai yang hilang setelah penyelarasan dengan NaN 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 3 dari 4.
Berapa lama pelajaran “Operasi Vektorisasi pada Series” 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
- Membuat Series
- Akses Berbasis Label dan Posisi
- Operasi Vektorisasi pada Series
- Metode Series yang Berguna