NumPy'da rastgele örnek üretmenin güncel ve esnek yolu, bir
Ön koşul olarak NumPy'nin Python ortamınızda kurulu olması gerekir. Aşağıdaki örnek, 0 ile 9 arasında beş tam sayı üretir:
Burada
NumPy üreteçleri sözde rastgele değerler üretir; aynı tohumla başlatılan aynı üreteç deterministiktir. Tohum ve üreteç ilişkisi resmî Generator belgesinde açıklanır. Bu özellik deneyleri tekrarlamak, hata ayıklamak ve eğitim örneklerini karşılaştırmak için kullanışlıdır. Güvenlik amacıyla kullanılacak rastgele değerler için bu yöntem uygun değildir.
Rastgele değer üretmeden önce istediğiniz dağılımı ve çıktı türünü belirleyin. Aşağıdaki yöntemler en sık kullanılan seçeneklerdir.
Her yöntemin ürettiği sonuç aynı anlama gelmez. Örneğin
Aşağıdaki kod, 10 ile 20 arasında üç ondalıklı değer üretir:
Ortalaması 100, standart sapması 15 olan beş varsayımsal değer şöyle üretilebilir:
Bir diziden tek veya birden fazla eleman seçmek için
Rastgele örnek ürettikten sonra sonucu kontrol etmek için dizinin türünü ve boyutunu inceleyebilirsiniz:
Generator nesnesi oluşturup onun yöntemlerini kullanmaktır. En temel kullanım rng = np.random.default_rng() satırıdır; ardından integers(), uniform(), normal() veya choice() ile ihtiyacınıza uygun örnekleri üretebilirsiniz. Aynı sonuçları yeniden elde etmek istiyorsanız başlangıçta bir tohum değeri verin.Rastgele sayı üreten temel örnek
Ön koşul olarak NumPy'nin Python ortamınızda kurulu olması gerekir. Aşağıdaki örnek, 0 ile 9 arasında beş tam sayı üretir:
Python:
import numpy as np
rng = np.random.default_rng(42)
ornekler = rng.integers(0, 10, size=5)
print(ornekler)
Burada
0 alt sınır dahil, 10 ise üst sınır hariçtir. size=5 beş değer istenmesini sağlar. 42 ise tohumdur. Bu kod aynı NumPy sürümü ve aynı çalışma koşulları altında yeniden çalıştırıldığında aynı diziyi üretmesi beklenir. Tohum verilmezse her çalıştırmada farklı bir dizi elde edebilirsiniz.NumPy üreteçleri sözde rastgele değerler üretir; aynı tohumla başlatılan aynı üreteç deterministiktir. Tohum ve üreteç ilişkisi resmî Generator belgesinde açıklanır. Bu özellik deneyleri tekrarlamak, hata ayıklamak ve eğitim örneklerini karşılaştırmak için kullanışlıdır. Güvenlik amacıyla kullanılacak rastgele değerler için bu yöntem uygun değildir.
İhtiyaca göre doğru yöntemi seçme
Rastgele değer üretmeden önce istediğiniz dağılımı ve çıktı türünü belirleyin. Aşağıdaki yöntemler en sık kullanılan seçeneklerdir.
| Yöntem | Üretilen değer | Örnek kullanım |
|---|---|---|
integers() | Tam sayılar | 0-99 arasında simülasyon değerleri |
uniform() | Belirli aralıkta ondalıklı değerler | 0 ile 1 arasında ölçüm benzeri değerler |
normal() | Normal dağılıma göre değerler | Ortalama ve standart sapmaya göre örnekleme |
choice() | Diziden seçilen elemanlar | Liste içinden rastgele seçim |
uniform() yalnızca belirtilen aralıkta değer seçer; verilerin gerçek dünyadaki dağılımını kanıtlamaz. normal() ise belirlediğiniz ortalama ve standart sapmaya göre örnek üretir, ancak çıktının mutlaka bu değerlere yakın olacağını garanti etmez.Aralıkta ondalıklı değerler üretme
Aşağıdaki kod, 10 ile 20 arasında üç ondalıklı değer üretir:
Python:
import numpy as np
rng = np.random.default_rng(42)
ornekler = rng.uniform(10, 20, size=3)
print(ornekler)
uniform(10, 20) çağrısında 10 dahil edilebilir, 20 ise üst sınır olarak kullanılır. Bu örnekte tohum 42 olarak sabitlendiği için aynı NumPy sürümü ve çalışma koşullarında kod yeniden çalıştırıldığında aynı sonuçlar alınır. Yeni örnekler için aynı üreteçten tekrar değer çekebilir veya sabit tohum vermeden yeni bir üreteç oluşturabilirsiniz.Normal dağılıma göre örnek üretme
Ortalaması 100, standart sapması 15 olan beş varsayımsal değer şöyle üretilebilir:
Python:
import numpy as np
rng = np.random.default_rng(42)
ornekler = rng.normal(loc=100, scale=15, size=5)
print(ornekler)
loc ortalamayı, scale standart sapmayı belirtir. Bu örnek, her değerin 100 olacağını söylemez; yalnızca değerlerin bu parametrelerle tanımlanan dağılımdan seçilmesini sağlar. Negatif değerlerin anlamsız olduğu bir problemde normal dağılımı doğrudan kullanmak yerine verinin alanına uygun başka bir dağılım seçmeniz gerekir.Bir listeden rastgele seçim yapma
Bir diziden tek veya birden fazla eleman seçmek için
choice() kullanabilirsiniz:
Python:
import numpy as np
rng = np.random.default_rng(42)
renkler = np.array(["kırmızı", "mavi", "yeşil"])
secimler = rng.choice(renkler, size=5, replace=True)
print(secimler)
replace=True aynı elemanın birden fazla kez seçilebileceği anlamına gelir. Her elemanı en fazla bir kez seçmek istiyorsanız replace=False kullanın; bu durumda size değeri dizinin eleman sayısını aşamaz.Rastgele örnek ürettikten sonra sonucu kontrol etmek için dizinin türünü ve boyutunu inceleyebilirsiniz:
Python:
print(secimler.dtype)
print(secimler.shape)
dtype değer türünü, shape ise dizinin boyutunu gösterir. Aynı Generator nesnesini art arda kullanırsanız her çağrı bir önceki durumdan devam eder; her satırda yeni bir tohumlu üreteç oluşturmak, beklenmedik biçimde aynı sonuçları almanıza yol açabilir.
Son düzenleme: