Anasayfa / PYTHON / Python NumPy Kütüphanesi ve Veri Bilimine Giriş Rehberi

Python NumPy Kütüphanesi ve Veri Bilimine Giriş Rehberi

Python programlama dilinin sadece web veya masaüstü uygulamaları geliştirmede değil, Veri Bilimi (Data Science), Yapay Zeka (AI) ve Makine Öğrenimi (Machine Learning) gibi geleceğin teknolojilerinde de dünyanın en popüler dili olmasının arkasında yatan büyük bir sır vardır. Bu sır, Python’un sunduğu devasa ve güçlü dış kütüphane ekosistemidir. Bu ekosistemin tam merkezinde, adeta kalbinde yer alan kütüphane ise NumPy kütüphanesidir.

Yeni başlayanlara hitap eden bu kapsamlı rehberimizde; “NumPy nedir?”, “Klasik Python listelerinden farkı nedir?” ve “NumPy dizileri ile nasıl işlemler yapılır?” sorularını bol kod örnekleriyle adım adım öğreneceksiniz.

1. NumPy Nedir ve Neden Kullanmalıyız?

İngilizce “Numerical Python” (Sayısal Python) kelimelerinin kısaltmasından adını alan NumPy, temel olarak Python’da bilimsel ve matematiksel hesaplamalar yapmak için kullanılan açık kaynaklı bir kütüphanedir. 2005 yılında Travis Oliphant tarafından oluşturulan bu kütüphane, devasa boyutlardaki çok boyutlu diziler (arrays) ve matrisler üzerinde ışık hızında işlem yapmanızı sağlar.

Python öğrenirken “Listeler (Lists)” konusunu görmüştünüz. Peki, “Neden klasik Python listeleri yerine NumPy kullanıyoruz?” diye sorabilirsiniz. Bunun üç temel ve hayati nedeni vardır:

  • Hız ve Performans: Python listeleri farklı veri tiplerini aynı anda barındırabildiği için arka planda yavaş çalışır. NumPy dizileri ise homojen (aynı veri tipinden oluşan) bir yapıya sahip olduğu için listelere kıyasla inanılmaz derecede daha hızlıdır ve işlemleri yıldırım hızında gerçekleştirir.
  • Bellek (RAM) Verimliliği: NumPy dizileri, standart Python listelerinden çok daha az bellek tüketir. Bu da milyonlarca veri satırını bilgisayarınız donmadan işleyebilmeniz anlamına gelir.
  • Gelişmiş Matematiksel Yetenekler: Standart listelerle iki diziyi birbirine çarpmak için uzun for döngüleri yazmanız gerekir. NumPy, matematiksel, trigonometrik, logaritmik ve doğrusal cebir (linear algebra) operasyonlarını tek bir kod satırıyla tüm diziye uygulamanızı sağlar.

Unutmayın; daha sonra öğreneceğiniz Pandas, Scikit-learn ve TensorFlow gibi gelişmiş kütüphanelerin hepsi temelinde NumPy altyapısını kullanarak çalışır.

2. NumPy Kurulumu ve Projeye Dahil Edilmesi

NumPy kütüphanesi Python’un çekirdek yapısıyla hazır gelmez. Bu kütüphaneyi kullanabilmek için bilgisayarınıza yüklemeniz gerekmektedir. Komut satırınıza (CMD veya Terminal) aşağıdaki komutu yazarak kolayca indirebilirsiniz:

pip install numpy

Yükleme bittikten sonra, yazdığınız Python kod dosyasının en üst satırına bu kütüphaneyi içeri aktaran (import eden) kodu yazmalısınız. Dünya genelindeki tüm yazılımcıların ve veri bilimcilerin ortak kabul ettiği bir standart olarak NumPy, projeye daima np kısaltması ile dahil edilir.

import numpy as np

3. NumPy’ın Kalbi: ndarray (N-Dimensional Array) Nesnesi

NumPy’ın asıl büyüsü, İngilizce “N boyutlu dizi” anlamına gelen ndarray (N-dimensional array) nesnesinde saklıdır. Bu nesne ile tek boyutlu bir vektör (vektör), iki boyutlu bir tablo (matris) veya çok daha yüksek boyutlu veri yapıları oluşturabilirsiniz.

Bir Python listesinden NumPy dizisi yaratmak için np.array() fonksiyonu kullanılır.

Örnek Uygulama: İlk NumPy Dizimizi Oluşturalım

import numpy as np

# Standart bir Python listesi tanımlayalım
sicakliklar_listesi =

# Bu listeyi bir NumPy dizisine (ndarray) dönüştürelim
sicakliklar_dizisi = np.array(sicakliklar_listesi)

print(sicakliklar_dizisi)
print(type(sicakliklar_dizisi))

Çıktı:


<class 'numpy.ndarray'>

4. Hazır NumPy Dizileri Oluşturma Metotları

Veri bilimi süreçlerinde, içini sonradan doldurmak veya testler yapmak üzere hazır dizilere ihtiyaç duyarsınız. NumPy bunun için harika gömülü fonksiyonlar sunar:

  • np.zeros(): İçerisindeki tüm elemanların 0 (sıfır) olduğu bir dizi yaratır. Örneğin np.zeros(5) komutu 5 tane sıfırdan oluşan bir vektör üretir. Satır ve sütun vererek çok boyutlu da oluşturabilirsiniz: np.zeros((2, 3)) (2 satır, 3 sütunlu bir matris).
  • np.ones(): İçerisindeki tüm elemanların 1 olduğu bir dizi yaratır. Örnek: np.ones(4).
  • np.arange(başlangıç, bitiş, adım): Python’daki range() fonksiyonunun aynısıdır, ancak doğrudan NumPy dizisi üretir. np.arange(0, 10, 2) yazdığınızda “ sonucunu verir.
  • np.random.rand(): Belirtilen boyutlarda ve 0 ile 1 arasında tamamen rastgele değerlerden oluşan bir dizi üretir. Şans oyunları, yapay zeka deneyleri ve test verisi üretmek için çok sık kullanılır.

5. Dizi İşleme ve Çok Boyutluluk Kavramı (Matrix)

İki veya daha fazla boyutlu veri yapılarında da NumPy kullanırız. Örneğin öğrencilerin farklı sınavlardan aldığı notları içeren bir satır-sütun tablosu:

import numpy as np

# 2 satır ve 3 sütundan oluşan 2 Boyutlu Dizi (Matris)
notlar = np.array([
   ,

])

print(notlar)

NumPy, dizinizin şeklini, boyutunu ve yapısal özelliklerini değiştirmenize izin veren metotlara sahiptir. Örneğin; var olan dizinizin satır-sütun sayısını (şeklini) değiştirmek için reshape() komutu kullanılır. 10 elemanlı tek boyutlu bir diziyi reshape(2, 5) kullanarak 2 satır ve 5 sütunlu bir tabloya saniyeler içinde dönüştürebilirsiniz.

6. NumPy ile Kolay ve Hızlı Matematiksel İşlemler

NumPy’ı standart Python’dan ayıran en harika özellik, diziler üzerindeki matematiksel işlemleri döngü kullanmadan, doğrudan vektörel düzeyde (array-oriented) yapabilmesidir. Buna yayınlama (broadcasting) özelliği de denir.

Aşağıdaki örneğe bakalım; elimizdeki fiyat dizisindeki tüm ürünlerin fiyatını 2 katına çıkarmak istiyoruz:

Klasik Python (Hantal Yöntem):

fiyatlar =
yeni_fiyatlar = []
for f in fiyatlar:
    yeni_fiyatlar.append(f * 2)

NumPy Pratikliği (Gelişmiş Yöntem):

import numpy as np

fiyatlar_dizisi = np.array()

# Tüm elemanları tek bir hareketle 2 ile çarpıyoruz
out = 2 * fiyatlar_dizisi
print(out)

Bu komut çalıştığında doğrudan “ sonucunu alırsınız. Gördüğünüz gibi, bir matrisi veya diziyi tek bir skaler sayıyla çarpmak, toplamak veya bölmek sadece klasik bir matematik işlemi yazmak kadar kolaydır.

7. Dizilerden Eleman Çekme (Indexing ve Slicing)

Oluşturduğunuz devasa verilerden belirli noktaları çekmek için NumPy indekslemeyi kullanırız. Python listelerinden alışık olduğunuz yapı burada da geçerlidir.

  • dizi ilk elemanı, dizi[-1] ise son elemanı getirir.
  • İki boyutlu bir matriste işlem yapıyorsanız, matris[satir_indeksi, sutun_indeksi] formatını kullanırsınız. Örneğin notlar kodu size birinci satırın ikinci sütunundaki veriyi getirecektir.

Sonuç

NumPy, Python ile Veri Bilimi veya Yapay Zeka mühendisi olma yolunda atmanız gereken en temel, sağlam ve ilk adımdır. Kodlarınızı döngü hamallığından kurtaran bu kütüphane sayesinde lineer cebir operasyonları yapabilir, verilerinizi temizleyip işleyebilir ve istatistiksel sonuçlar üretebilirsiniz. CSV veya metin dosyalarından veri okuma imkanı sunan bu yapıyı (np.genfromtxt vb. fonksiyonlarla) kavradığınız an, verileri profesyonel araçlarla analiz etmek sizin için artık çok kolay olacaktır. IDE’nizi açıp rastgele diziler üreterek kendi matematiksel modellerinizi test etmeye hemen bugün başlayın!

Etiketlendi:

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir