Pengenalan dan Penggunaan Dasar Modul Python untuk Komputasi Saintifik: NumPy

Pengenalan dan Penggunaan Dasar Modul Python untuk Komputasi Saintifik: NumPy

Python Pemrograman NumPy

NumPy (Numerical Python) adalah pustaka Python untuk perhitungan numerik yang sangat cepat dan efisien. Artikel ini menjelaskan dasar-dasar penggunaan NumPy bagi pemula, mulai dari cara instalasi paket, pembuatan array 1D–3D, operasi aritmatika vektorisasi, hingga manipulasi data dengan indexing, slicing, dan broadcasting.

1️⃣ Apa Itu NumPy?

NumPy (Numerical Python) adalah pustaka Python untuk perhitungan numerik. NumPy menggantikan list Python biasa dengan struktur array multidimensi yang lebih efisien dan dilengkapi fungsi matematika tingkat lanjut.

NumPy sangat penting untuk bidang-bidang seperti:

  • Sains data dan analisis numerik
  • Simulasi komputasi (fisika, teknik, dll.)
  • Pembelajaran mesin dan deep learning
  • Pemrosesan sinyal dan gambar
Kenapa tidak pakai list biasa?

Kalau kita coba kode berikut, kita akan memahami bahwa operasi dengan NumPy memiliki kinerja yang jauh lebih cepat ketimbang modul list bawaan dari Python.

import time

# Menggunakan list Python
data = list(range(1_000_000))
start = time.time()
hasil = [x * 2 for x in data]
print("Waktu list :", time.time() - start)

# Menggunakan NumPy
import numpy as np
data_np = np.arange(1_000_000)
start = time.time()
hasil_np = data_np * 2
print("Waktu NumPy:", time.time() - start)

Menggunakan perangkat yang sama, operasi dengan list Python memakan waktu 0.027, sedangkan dengan NumPy hanya perlu waktu 0.0012.

2️⃣ Cara Menginstal NumPy

Gunakan perintah berikut di terminal atau Anaconda/Miniconda prompt:

pip install numpy

Atau jika Anda menggunakan conda:

conda install numpy

Setelah terinstal, uji instalasinya dengan:

import numpy as np
print(np.__version__)

3️⃣ Membuat dan Memahami Array

Membuat array 1D, 2D, dan 3D

Kita bisa membuat array dengan contoh perintah berikut ini:

import numpy as np

# Array 1 dimensi
a = np.array([1, 2, 3])
# Array 2 dimensi
b = np.array([[1, 2, 3],
              [4, 5, 6]])
# Array 3 dimensi
c = np.array([
    [[1,2], [3,4]],
    [[5,6], [7,8]]
])

print("a =", a)
print("b shape:", b.shape)
print("c ndim:", c.ndim)

Beberapa atribut penting dari NumPy:

Atribut Keterangan Contoh
.shape ukuran tiap dimensi (2, 3)
.ndim jumlah dimensi 2
.dtype tipe data elemen int32, float64
.size jumlah total elemen 6
.itemsize ukuran tiap elemen (byte) 8

4️⃣ Operasi Dasar pada Array

Membuat array khusus

Terdapat beberapa metode untuk membuat array khusus, misalnya yang semuanya berisi 0, 1, atau lainnya. Cek kode berikut ini:

np.zeros((2,3))        # array berisi 0
np.ones((2,3))         # array berisi 1
np.full((2,2), 9)      # array berisi nilai tertentu
np.eye(3)              # matriks identitas
np.arange(0,10,2)      # seperti range()
np.linspace(0,1,5)     # 5 angka dari 0 sampai 1
Mengubah bentuk (reshape)

Jika array yang sudah pernah kita buat ingin kita ubah bentuknya, kita bisa menggunakan kode seperti:

a = np.arange(12)
b = a.reshape(3,4)
print(b)
Menggabungkan dan memisahkan

Selain itu, kita juga bisa menggabungkan dan memisahkan array. Operasi ini diperlukan untuk berbagai keperluan pemrosesan data, yang merupakan salah satu backbone dari komputasi saintifik. Cek kode berikut ini:

x = np.array([1,2,3])
y = np.array([4,5,6])
print(np.concatenate([x,y]))  # gabung
print(np.vstack([x,y]))       # vertikal
print(np.hstack([x,y]))       # horizontal

5️⃣ Operasi Aritmatika dan Vektorisasi

NumPy juga mendukung operasi elemen demi elemen (vectorized operations), misalnya:

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

print(a + b)     # [11 22 33]
print(a - b)     # [ 9 18 27]
print(a * b)     # [10 40 90]
print(a / b)     # [10. 10. 10.]
print(a ** 2)    # [100 400 900]

⚡ Tidak perlu perulangan for seperti pada list! Ini adalah alasan utama NumPy lebih cepat dibanding list bawaan Python.

6️⃣ Indexing, Slicing, dan Broadcasting

Kita juga bisa mengambil bagian-bagian tertentu dari suatu array yang sudah pernah kita buat melalui metode indexing, slicing dan broadcasting, cek kode berikut.

Indexing dan Slicing

Untuk array 1D:

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

Untuk array 2D:

b = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(b[0,2])     # elemen baris 0 kolom 2 → 3
print(b[:,1])     # kolom kedua → [2 5 8]
print(b[1,:])     # baris kedua → [4 5 6]
Broadcasting

Broadcasting memungkinkan operasi antara array dengan bentuk berbeda. Misalnya:

A = np.array([[1,2,3],[4,5,6]])
B = np.array([10,20,30])
print(A + B)

NumPy melakukan broadcast array B agar cocok dengan bentuk A.

7️⃣ Fungsi-Fungsi Umum NumPy

Beberapa fungsi-fungsi umum NumPy dapat dilihat pada tabel berikut ini.

Kategori Contoh Fungsi Penjelasan
Statistik np.mean, np.median, np.std, np.var rata-rata, deviasi standar, variansi
Agregasi np.sum, np.min, np.max, np.argmin jumlah total, nilai min/max
Matematika np.sqrt, np.exp, np.log, np.sin, np.cos fungsi matematika element-wise
Acak np.random.rand, np.random.randint, np.random.normal pembangkitan data acak
Sortir np.sort, np.argsort pengurutan dan indeks hasil urutan

Contoh:

data = np.array([2, 5, 7, 1, 9])
print(np.mean(data))    # 4.8
print(np.sort(data))    # [1 2 5 7 9]

8️⃣ Operasi Matriks dan Aljabar Linear

Operasi matriks dan aljabar linier merupakan satu dari sekiat metode inti dalam ilmu matematika dan pengemangan model pembelajaran mesin dan deep learning. Cek kode berikut ini untuk operasi-operasi array di NumPy, khususnya yang berkaitan dengan matriks dan aljabar linier.

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

print(A + B)
print(A @ B)         # perkalian matriks (atau np.dot(A,B))
print(np.linalg.inv(A))   # invers
print(np.linalg.det(A))   # determinan
print(np.linalg.eig(A))   # eigenvalue & eigenvector

9️⃣ Contoh Aplikasi Sederhana

9.1 Menghitung Statistik Nilai Mahasiswa

Kita bisa dengan mudah menghitung beberapa nilai-nilai statistika deskriptif, seperti berikut ini.

import numpy as np

nilai = np.array([75, 80, 60, 90, 85, 70])

print("Nilai rata-rata:", np.mean(nilai))
print("Nilai maksimum :", np.max(nilai))
print("Nilai minimum  :", np.min(nilai))
print("Standar deviasi:", np.std(nilai))
9.2 Simulasi Pengukuran Eksperimen

Kita juga bisa melakukan pengukuran eksperimen tertentu, dan misalnya ingin menghitung nilai rata-rata dan simpangan baku.

# Misal kita punya data acak dari pengukuran suhu
data = np.random.normal(loc=27.5, scale=1.2, size=1000)
print("Rata-rata suhu:", np.mean(data))
print("Simpangan baku:", np.std(data))

Kode np.random.normal menghasilkan data secara acak dengan mengikuti kaidah distribusi normal.

9.3 Menghitung jarak Euclidean antar vektor

Kita juga bisa menghitung jarak Euclidean antara dua vektor dalam ruang dua dimensi menggunakan NumPy di Python, seperti:

a = np.array([3,4])
b = np.array([0,0])
jarak = np.sqrt(np.sum((a - b)**2))
print("Jarak:", jarak)

🔟 Ringkasan & Cheat Sheet

Cek ringkasan dan cheatsheet berikut ini.

Operasi Sintaks Keterangan
Membuat array np.array([1,2,3]) array dasar
Rentang angka np.arange(0,10,2) seperti range()
Array seragam np.zeros((2,3)), np.ones((3,3)) berisi nol/satu
Rata-rata np.mean(x) statistik dasar
Perkalian matriks A @ B operasi linear algebra
Transpose A.T membalik dimensi
Reshape a.reshape(3,4) ubah dimensi
Acak np.random.rand(3) bilangan acak 0–1
Sorting np.sort(x) urutkan elemen
Indexing 2D a[1,2], a[:,1] baris/kolom

📚 Referensi

Tambah komentar

Previous Post Next Post