Metode Utama Randomisasi Data di Python
Randomisasi data dalam Python umumnya dilakukan melalui dua pustaka utama: modul bawaan random untuk operasi dasar pada list, dan numpy.random untuk komputasi numerik serta array berskala besar. Pemilihan metode bergantung pada struktur data dan kebutuhan performa aplikasi Anda.
1. Pengacakan List dengan Modul random
Modul random adalah standar untuk mengacak elemen dalam list Python. Fungsi shuffle() mengubah urutan list secara in-place, sementara sample() menghasilkan list baru tanpa mengubah data asli.
import random
# Mengacak list secara in-place
data = [1, 2, 3, 4, 5]
random.shuffle(data)
print(f"Hasil shuffle: {data}")
# Mengambil sampel acak tanpa penggantian
sampel = random.sample(data, 3)
print(f"Hasil sample: {sampel}")2. Randomisasi Array dengan NumPy
Untuk data saintifik atau dataset besar, numpy.random jauh lebih efisien. Penggunaan Generator (sejak NumPy 1.17) lebih direkomendasikan dibandingkan fungsi random.seed() global untuk menjaga konsistensi hasil (reproducibility).
import numpy as np
# Inisialisasi generator
rng = np.random.default_rng(seed=42)
# Mengacak array
arr = np.array([10, 20, 30, 40, 50])
rng.shuffle(arr)
print(f"Array acak: {arr}")
# Membuat array acak dengan distribusi normal
random_data = rng.standard_normal(5)
print(f"Data acak normal: {random_data}")| Metode | Library | Kegunaan Utama | Performa |
|---|---|---|---|
| shuffle() | random | List Python standar | Sedang |
| sample() | random | Memilih subset acak | Sedang |
| rng.shuffle() | numpy | Array NumPy (Large Data) | Sangat Cepat |
| rng.choice() | numpy | Sampling dengan probabilitas | Sangat Cepat |
Tips Troubleshooting
- Reproducibility: Selalu gunakan
seed(misal:random.seed(42)ataunp.random.default_rng(42)) jika Anda ingin hasil acak yang sama setiap kali kode dijalankan, terutama untuk keperluan debugging atau pengujian model machine learning. - Memory Usage: Untuk dataset yang sangat besar (melebihi RAM), hindari memuat seluruh data ke list. Gunakan generator atau library seperti
Daskuntuk melakukan sampling secara streaming. - Keamanan: Jangan gunakan modul
randomuntuk keperluan kriptografi (seperti pembuatan token atau password). Gunakan modulsecretsyang dirancang khusus untuk keamanan tingkat tinggi.
🔍 Orang Lain Juga Mencari Ini
Python Random Shuffle List
Numpy Random Choice
Python Random Seed Explanation
Random Sampling Python
Python Secrets Module
Numpy Random Generator
Python Shuffle Vs Sample
Data Randomization Techniques
Python Random Integer
Numpy Random Permutation
Reproducible Random Python
Python Random Choice With Weights
Randomizing Pandas Dataframe
Python Random Float
Cryptographically Secure Random Python