Python'da Rastgele Veri Üretimi: random vs. Alternatifler
Python'da rastgele sayı üretmek basit görünse de, seçtiğin araç projenin amacına göre büyük fark yaratır. Standart random modülü, kriptografi, veri analizi ve oyun geliştirme için farklı ihtiyaçları karşılar; hangisini kullanacağını bilmek önemli.
Standart random modülü hafif ve hızlı, ancak kriptografik olarak güvenli değildir. Eğer oyun, simülasyon veya test verisi üretiyorsan mükemmel. örnek:
1import random23# Basit rastgele sayı4print(random.randint(1, 100))56# Listeden rastgele seçim7kullanicilar = ['Ali', 'Ayşe', 'Mehmet']8print(random.choice(kullanicilar))910# Listeyi karıştır11random.shuffle(kullanicilar)12print(kullanicilar)Ancak parolalar, API anahtarları veya güvenlik tokenleri üretiyorsan secrets modülünü kullan. Bu, işletim sisteminin kriptografik rastgelelik kaynağını kullanır ve çok daha güvenli:
1import secrets23# Güvenli rastgele token4token = secrets.token_hex(16)5print(token) # 32 karakterlik hex string67# Rastgele parola8parola = secrets.choice(['A', 'B', 'C', '1', '2', '3'])9print(parola)Büyük veri setleriyle çalışıyorsan NumPy'nin random modülü (ya da yeni Generator API) çok daha hızlı. Milyonlarca sayıyı saniyeler içinde üretir:
1import numpy as np23# 1 milyon rastgele float4veriler = np.random.rand(1000000)5print(veriler[:5])67# Normal dağılım8normal = np.random.normal(loc=0, scale=1, size=100)9print(normal)Praktik olarak: oyun, simülasyon random; güvenlik kritik secrets; büyük veri, makine öğrenmesi NumPy. Hata yapma riski düşükse random yeterli, ama hassas işlerde secrets'ı tercih et. Performans önemli ve vektörleştirilmiş işlem yapıyorsan NumPy'ye geç.
0 yorum