• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

NumPy logspace ile logaritmik aralıklı değerler nasıl oluşturulur?

  • Konuyu Başlatan Konuyu Başlatan Garfield
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 1
  • Etiketler Etiketler
    veri bilimi

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni
NumPy’de logaritmik aralıklı değerler oluşturmak için np.logspace() kullanılır. Başlangıç ve bitiş değerlerini doğrudan değil, seçtiğiniz tabanda üs olarak verirsiniz. Örneğin np.logspace(0, 3, num=4) ifadesi 10⁰ ile 10³ arasına eşit aralıklı dört değer üretir: [1., 10., 100., 1000.] Böylece geniş büyüklük aralıklarını grafik, benzetim, performans testi veya parametre taraması için düzenli biçimde örnekleyebilirsiniz.

logspace() nasıl çalışır?​

Temel kullanım biçimi şöyledir:

Python:
import numpy as np

np.logspace(start, stop, num=50, endpoint=True, base=10.0)

start ve stop değerleri, oluşturulacak sayıların üsleridir. Varsayılan taban 10 olduğu için start=0 ve stop=3 aralığı 1 ile 1000 arasını ifade eder. num kaç değer üretileceğini, endpoint ise son değerin dahil edilip edilmeyeceğini belirler.

Buradaki “eşit aralık”, normal sayılar arasındaki farkın eşit olduğu anlamına gelmez. Üsler eşit aralıklarla ilerler; gerçek değerlerin oranı eşit olur. Bu nedenle sonuçlar 1, 10, 100 gibi çarpanlarla büyür.

En küçük çalışan örnek​

Aşağıdaki kod, 1 ile 1000 arasında logaritmik olarak eşit aralıklı beş değer oluşturur:

Python:
import numpy as np

degerler = np.logspace(0, 3, num=5)
print(degerler)

Beklenen çıktı yaklaşık olarak şöyledir:

Kod:
[   1.            5.62341325   31.6227766   177.827941   1000.        ]

Bu çıktıda ardışık değerlerin farkları eşit değildir; ancak ardışık değerlerin oranları yaklaşık olarak aynıdır. Örneğin bu beş değerli dizide her adımın oranı 10 ** (3 / (5 - 1)) ≈ 5,623 olur. Bu, 1 ile 1000 arasındaki büyüklükleri doğrusal aralıktan daha dengeli örneklemek için kullanılır.

Birinci ve son değer nasıl belirlenir?​

np.logspace(start, stop, num) için değerler kabaca şu formülle hesaplanır:

Kod:
base ** üs

start=2 ve stop=5 verilirse, varsayılan taban 10 için aralık 10² ile 10⁵, yani 100 ile 100.000 arasındadır:

Python:
degerler = np.logspace(2, 5, num=4)
print(degerler)

Çıktı:

Kod:
[   100.           1000.          10000.         100000.        ]

Son değeri aralığa dahil etmek istemezseniz endpoint=False kullanın:

Python:
degerler = np.logspace(0, 3, num=4, endpoint=False)
print(degerler)

Bu durumda 1000 değeri üretilmez; örnekleme 1’den başlayıp 1000’e yaklaşır. endpoint=False özellikle döngüsel örnekleme veya üst sınırın başka bir aralığın başlangıcıyla çakışmaması gereken durumlarda tercih edilir.

logspace, linspace ve geomspace farkı​

Hangi fonksiyonu kullanacağınız, aralığı hangi biçimde tanımlamak istediğinize bağlıdır. Aşağıdaki karşılaştırma aynı tür işlemi farklı matematiksel kurallarla yapar.
FonksiyonAralık biçimiÖrnekUygun kullanım
linspace()Değer farkları eşit0, 25, 50, 75, 100Doğrusal ölçüm aralıkları
logspace()Üsler eşit, oranlar eşit1, 10, 100, 1000Belirli bir tabanda büyüklük taraması
geomspace()Başlangıç ve bitiş değerleri arasında oranlar eşit1, 10, 100, 1000Pozitif uç değerleri doğrudan belirtme
linspace(1, 1000, 4) kullanırsanız değerler doğrusal olarak dağılır ve 1 ile 1000 arasındaki fark üç eşit aralığa bölünür; uçlar dahil dört nokta üretilir. logspace(0, 3, 4) ise üsleri böler. Başlangıç ve bitiş değerlerini üs olarak değil, doğrudan 1 ve 1000 olarak vermek istiyorsanız geomspace(1, 1000, 4) daha anlaşılır olabilir.

Farklı tabanda logaritmik aralık oluşturma​

Varsayılan taban 10’dur. İkilik büyüklükler veya başka bir üstel ölçek için base parametresini değiştirin:

Python:
ikilik_degerler = np.logspace(0, 10, num=6, base=2)
print(ikilik_degerler)

Bu kod 2⁰ ile 2¹⁰ arasındaki değerleri üretir. Yaklaşık çıktı şöyledir:

Kod:
[   1.            4.            16.            64.           256.          1024.        ]

Burada beş eşit üs aralığı bulunduğu için her adımda 2’nin iki kuvveti kadar büyüme görülür. Kullanılan taban, çıktıların hangi büyüklük dizisini temsil ettiğini değiştirir.

Üretilen değerleri bir hesaplamada kullanma​

logspace() doğrudan NumPy dizisi döndürdüğü için değerleri vektör işlemlerinde kullanabilirsiniz. Örneğin, 1 ile 1000 arasında örneklenen değerlerin doğal logaritmasını hesaplamak için:

Python:
import numpy as np

x = np.logspace(0, 3, num=5)
y = np.log(x)

print(x)
print(y)

x logaritmik aralıklı giriş değerlerini, y ise bu değerlerin doğal logaritmasını içerir. num değerini artırmak daha sık örnekleme yapar; ancak bu, ölçümün veya modelin doğruluğunu tek başına artırmaz. Yalnızca aradaki örnek noktalarının sayısını artırır.

Negatif veya sıfır değerler içeren bir aralığı doğrudan logspace() ile tanımlayamazsınız; fonksiyon pozitif tabanın üslerini üretir. Ayrıca elde edilen dizinin logaritmik olması, kullandığınız sonraki hesaplamanın otomatik olarak logaritmik davranacağı anlamına gelmez. Aralığın temsil biçimini seçer; hesaplama modelini değiştirmez.
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic
Geri
Üst