0Pricing
Pandas & NumPy Academy · Pelajaran

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.0

Mengisi 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.0

Aritmetika 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.32

Menerapkan 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.0

Operasi 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:9

Merangkai 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.60

Menangani 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.0

abs(), 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.273

cumsum() 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    530

Pemeriksaan 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

  1. Membuat Series
  2. Akses Berbasis Label dan Posisi
  3. Operasi Vektorisasi pada Series
  4. Metode Series yang Berguna
← Kembali ke Pandas & NumPy Academy