Sessi 2: Lingkungan Kerja Data Sains dan Dasar Python
A. NumPy: Aljabar Linear dan Operasi Matriks
NumPy (Numerical Python) adalah tulang punggung komputasi numerik di Python. Struktur datanya, ndarray (N-dimensional array), memungkinkan operasi vektor dan matriks yang sangat cepat, jauh lebih efisien daripada *list* Python standar. Hal ini penting untuk perhitungan di Fisika dan Matematika.
Contoh 1: Operasi Matriks dan Perkalian Titik (*Dot Product*)
Misalkan kita memiliki dua matriks, A dan B, dan ingin mencari hasil perkalian A·B. Operasi ini adalah dasar dari banyak transformasi dalam ilmu data.
import numpy as np
# Membuat Matriks A (2x3) dan Matriks B (3x2)
matriks_A = np.array([[1, 2, 3], [4, 5, 6]])
matriks_B = np.array([[7, 8], [9, 10], [11, 12]])
# Perkalian Matriks (Dot Product)
hasil_dot = np.dot(matriks_A, matriks_B)
print("Matriks A (2x3):\n", matriks_A)
print("Matriks B (3x2):\n", matriks_B)
print("\nHasil Perkalian Matriks A.B (2x2):\n", hasil_dot)
B. Pandas: DataFrame dan Struktur Data
Pandas memperkenalkan struktur data DataFrame, yang merupakan tabel 2-dimensi dengan label kolom dan baris. Ini adalah format standar kita untuk mewakili dataset. Setiap kolom dapat dianggap sebagai sebuah vektor data (Series).
Contoh 2: Studi Kasus - Memuat Dataset UCI Iris
Kita akan memuat dataset Iris (klasik dalam klasifikasi bunga) yang diasumsikan sudah ada di Colab Assets (`iris.csv`).
import pandas as pd
# Asumsikan file 'iris.csv' sudah diunggah
file_path = 'iris.csv'
# Memuat data ke DataFrame
try:
df_iris = pd.read_csv(file_path)
print("5 Baris Data Teratas (df.head()):")
print(df_iris.head())
print("\nInformasi Struktur Data (df.info()):")
# Memeriksa tipe data, non-null counts, dan penggunaan memori
df_iris.info()
print("\nDimensi Data (Baris, Kolom) - df.shape:", df_iris.shape)
except FileNotFoundError:
print("ERROR: File 'iris.csv' tidak ditemukan. Pastikan sudah diunggah.")
C. Studi Kasus Variasi: Seleksi Data Berbasis Indeks dan Kondisi
Kemampuan untuk memilih dan memanipulasi data adalah inti dari *Data Wrangling*. Kita menggunakan operator .loc (berbasis label) dan .iloc (berbasis indeks integer).
Contoh 3: Pemfilteran Data (Data dari Kaggle - Kualitas Anggur Merah)
Misalnya, kita ingin menganalisis semua sampel anggur yang memiliki tingkat alkohol Alcohol > 10.0 dan keasaman Fixed Acidity < 8.0.
import pandas as pd
# Data Fiktif (merepresentasikan data dari Kaggle Wine Quality)
data_wine = {
'Fixed Acidity': [7.4, 7.8, 8.5, 9.9, 7.0],
'Volatile Acidity': [0.70, 0.88, 0.28, 0.25, 0.35],
'Alcohol': [9.4, 9.8, 9.8, 11.5, 9.4],
'Quality': [5, 5, 6, 7, 5]
}
df_wine = pd.DataFrame(data_wine)
# 1. Seleksi Baris Berdasarkan Indeks (Baris 1 hingga 3, Kolom 0 dan 1)
df_iloc = df_wine.iloc[1:4, 0:2]
print("Seleksi Berbasis Index (iloc):\n", df_iloc)
# 2. Seleksi Baris Berdasarkan Kondisi (Pemfilteran Boolean)
# Kondisi: (Alcohol > 10.0) AND (Fixed Acidity < 8.0)
kondisi = (df_wine['Alcohol'] > 10.0) & (df_wine['Fixed Acidity'] < 8.0)
df_filtered = df_wine[kondisi]
print("\nData yang difilter (Kondisi Alcohol > 10.0 dan Fixed Acidity < 8.0):\n", df_filtered)