Rust ile Veri Bilimi: Polars ve Ndarray Kütüphaneleri

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Rust, geleneksel olarak Python ve R'ın domine ettiği veri bilimi dünyasına, özellikle büyük veri (Big Data) ve yüksek performanslı hesaplama ihtiyaçlarıyla hızlı bir giriş yaptı. Python'un kolaylığını, Rust'ın hızı ve bellek güvenliğiyle birleştiren iki dev kütüphane bu ekosistemin bel kemiğini oluşturur: Polars ve Ndarray.

1. Polars: DataFrame Dünyasının Yeni Kralı​

Polars, Python'daki Pandas kütüphanesinin Rust ile yazılmış, modern ve aşırı hızlı bir alternatifidir. Bellek içi (in-memory) veri işleme için tasarlanmıştır ve Apache Arrow bellek modelini kullanır.

Neden Polars?​

  • Performans: Polars, Pandas'tan genellikle 10 ila 100 kat daha hızlıdır.
  • Tembel Değerlendirme (Lazy Evaluation): Sorgularınızı hemen çalıştırmak yerine optimize eder (Query Optimization).
  • Paralel İşleme: Veriyi işlerken tüm CPU çekirdeklerini otomatik olarak kullanır.
Kod:
 use polars::prelude::*;
fn main() -> PolarsResult<()> { // CSV dosyasını "Lazy" (Tembel) modda oku let df = LazyCsvReader::new("veriler.csv") .has_header(true) .finish()? .filter(col("yas").gt(25)) // Filtrele .group_by([col("sehir")]) // Grupla .agg([col("gelir").mean()]) // Ortalama al .collect()?; // Tüm işlemleri optimize et ve çalıştır
[CODE]println!("{:?}", df);
Ok(())
} [/CODE]

2. Ndarray: Bilimsel Hesaplama ve N-Boyutlu Diziler​

Ndarray, Python'daki NumPy kütüphanesinin Rust karşılığıdır. Çok boyutlu diziler (n-dimensional arrays) oluşturmanıza ve bunlar üzerinde karmaşık matematiksel/lineer cebir işlemleri yapmanıza olanak tanır.

Temel Özellikler:​

  • Matematiksel İşlemler: Matris çarpımı, evrişim (convolution) ve istatistiksel analiz.
  • Dilimleme (Slicing): Veri setlerinin belirli bölümlerine kopyalama yapmadan hızlıca erişim.
  • Ecosystem: linfa (Makine Öğrenmesi) kütüphanesi gibi projeler temel olarak Ndarray kullanır.
Kod:
 use ndarray::prelude::*;
fn main() { // 2x3'lük bir matris oluştur let matris_a = array![[1, 2, 3], [4, 5, 6]]; let matris_b = Array::ones((3, 2)); // 3x2'lik birim matris
[CODE]// Matris çarpımı (Dot product)
let sonuc = matris_a.dot(&matris_b);

println!("Sonuç Matrisi:\n{:?}", sonuc);
} [/CODE]

3. Polars vs Ndarray: Hangisini Seçmeli?​

ÖzellikPolarsNdarray
Veri YapısıTablosal (DataFrame)Çok Boyutlu Dizi (Matrix/Tensor)
Odak NoktasıVeri manipülasyonu, SQL benzeri işlemlerMatematik, Lineer Cebir, ML algoritmaları
Tip DesteğiFarklı tipler bir arada (String, Int, Date)Genellikle tek bir tip (f32, f64)
KarşılığıPandasNumPy

4. Rust Veri Bilimi Ekosistemindeki Diğer Araçlar​

  • Linfa: Rust ile yazılmış kapsamlı bir Makine Öğrenmesi (Machine Learning) kütüphanesi (Scikit-learn alternatifi).
  • Plotters: Verilerinizi grafiklere (Line, Scatter, Histogram) dökmek için kullanılan çizim kütüphanesi.
  • Burn / Candle: Rust tabanlı modern Derin Öğrenme (Deep Learning) çatısı.

Özet​

Eğer milyonlarca satırlık bir veri setini temizlemeniz, gruplamanız ve analiz etmeniz gerekiyorsa Polars rakipsizdir. Ancak, bir yapay zeka algoritması geliştiriyor veya karmaşık matris hesaplamaları yapıyorsanız Ndarray sizin için doğru araçtır. Rust'ın bu iki kütüphanesi, Python'un kolaylığını Rust'ın gücüyle birleştirerek "Veri Mühendisliği" ve "Veri Bilimi" süreçlerini çok daha verimli hale getirir.
 
Geri
Üst