CodeBlanks Logo Icon CodeBlanks

İstatistik hesaplama

Verinin istatistiksel özetini çıkarırsın.

Sütun istatistikleri

Temiz veride her sütun için özet çıkaracağız. Gün sütunu (0) yalnızca sıra numarasıdır, istatistiği anlamsızdır; bu yüzden veri[:, 1:] ile atlanır:

olcum = veri[:, 1:]          # sıcaklık ve nem
print(olcum.mean(axis=0))    # [23.   48.75]
print(olcum.max(axis=0))     # [26. 60.]

Özellik başına özet, verinin aralığını görmeni ve hatalı değerleri (örneğin 99 °C) yakalamanı sağlar.

argmax: en sıcak gün

argmax en büyük değerin konumunu verir. Bu konumla başka bir sütundan karşılık gelen değer okunur:

i = veri[:, 1].argmax()
print(i)              # 3  (0 tabanlı)
print(veri[i, 0])     # 4.0  -> 4. gün

argmin aynı işi en küçük değer için yapar.

Uygulama Özet çıkar

Sıcaklık sütununun (veri[:, 1]) ortalamasını, standart sapmasını, en küçük ve en büyük değerini tek print ile yazdır. Ardından en sıcak günü argmax ile bulup tam sayı (int) olarak yazdır.

Başlangıç kodu

model.py
import io
import numpy as np

csv = "gun,sicaklik,nem\n1,20,40\n2,22,\n3,,60\n4,26,50\n5,24,45\n"
veri = np.genfromtxt(io.StringIO(csv), delimiter=",", skip_header=1)
veri = np.where(np.isnan(veri), np.nanmean(veri, axis=0), veri)

# buraya yaz

Örnek çözüm

model.py
import io
import numpy as np

csv = "gun,sicaklik,nem\n1,20,40\n2,22,\n3,,60\n4,26,50\n5,24,45\n"
veri = np.genfromtxt(io.StringIO(csv), delimiter=",", skip_header=1)
veri = np.where(np.isnan(veri), np.nanmean(veri, axis=0), veri)

s = veri[:, 1]
print(s.mean(), s.std(), s.min(), s.max())
print(int(veri[s.argmax(), 0]))

Beklenen çıktı

23.0 2.0 20.0 26.0
4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Ortalamayla doldurma sütunun ortalamasını nasıl etkiler?

  • Azaltır
  • nan yapar
  • Değiştirmez Doğru cevap
  • Artırır

Açıklama: Ortalamaya eşit bir değer eklemek ortalamayı korur; ama standart sapmayı biraz küçültür.

2 En düşük nemin konumunu bul.

Soru
i = veri[:, 2].____()
Cevap
i = veri[:, 2].argmin()

Açıklama: argmin değeri değil konumu döndürür.

3 İfadeleri eşleştir.

Kavram Anlamı
veri[:, 1:] Gün hariç sütunlar
max(axis=0) Sütun en büyükleri
argmax() En büyüğün konumu
veri[i, 0] O satırın günü

Başlangıç bölümündeki tüm dersler