Ölçün (Standard)
Python dilinin kendisinde bir çok işlem için son derece kullanışlı bir çok sınıf (class) ve işlev (function) bulunmaktadır. Yazılım geliştirme için gerekli veri yapıları ve algoritmalar (data structures and algorithms) konularındaki destek son derece geniştir. Dahası, öteki programlama dillerine göre bunların kullanımı son derece kolaydır.
Veri Türleri (Data Types)
Python dilinde bütün (integer) ve kayan (floating) sayı türleri, mantıksal (boolean) türler, sicim (string) türü dışında dizi ve öteki biriktiri (collection) türü veri yapıları da bulunmaktadır. Bunlardan dizelge (list), küme (set) ve sözlük (dict) / eşlem (map) gibi yapılar sayılabilir.
Sırtlı (File) ve Akımlar (Stream)
Gerek ikilik (binary) gerekse yazı (text) türü verilerle işlem yapmak için çok sayıda işlev bulunmaktadır. Dahası, dosyaları bir veri yapısı gibi doğrudan kullanmak olanaklıdır. Bunlara ek olarak sırtlı düzeni (file system) ilgili olanlar, ZIP gibi belgelik (archive) dosyalarının oluşturulması ve sökülmesi ilgili olanlar sırtlı (file) ve akım (stream) alanındaki Python desteği olarak sayılabilir.
İşletim Düzeni (Operating System)
İşletim düzenine erişim için çok sayıda işlev bulunmaktadır. Örnek olarak kütükleme (logging); süreçler (processes) ve yivler (threads) gibi konular sayılabilir. Pyhton dilinde güvenlik (security) ve şifreleme (cryptography) konularında da destek bulunmaktadır. Özellikle UNIX ve Linux için gelişmiş araçlar sunmaktadır. Veri bilimi için kullanımı yaygınlaşmadan önce Python dili işletim düzeninde kolay işlem yapmak için kullanılan bir betim (script) dili olarak kullanılmaktaydı. Bu nedenle bu konuda araçları son derece gelişmiş durumdadır. Bu nedenle düzen desteği (systems support) ve veri güvenliği (data security) ile ilgili olan kişiler Python ile çalışmayı yeğleyebilmektedirler. Bunun dışında Python çökertici (hacker) ve kırıcı (cracker) türü insanların da en yeğlediği araçların arasındadır.
Ağ (Network)
Pyhton ile TCP/IP ağları için priz (socket) programlama yapılabilir. Bu da Genelağ (Internet) üzerinden veri alışverişi için bir temel oluşturur. Bunun dışında bir çok iletişim kuralı (protocol) için destek bulunmaktadır. E-posta için POP3, SMTP, IMAP dışında FTP, HTTP, CGI gibi konularda da destek bulunmaktadır. Bu tür araçlar verilerin uzaktan alınması için kullanıldığı için veri bilimi için son derece yararlı olabilmektedirler.
Veri Biçimlenimleri (Data Formats)
Python dili veri biliminde yaygın olarak kullanıldığ için CSV, XML ve JSON gibi veri biçimlenimleri (data formats) desteği bulunmaktadır. Veri bilimini besleyen verilerin çoğu bir takım uygulamalardan ve veritabanlarından dışaverim (export) ile söz konusu biçimlenimlerde alınırlar. Bunların uygulamaya içealım (import) ile beslenmesi için bu biçimlenimlerin okunması gerekir. Düz veri dışında, HTML belgelerinin işlenmesi, XML kullanılarak SOAP protokolü, REST tekniği için destekler bulunmaktadır.
Görsel Arayüz (User Interface) ve Çokluortam (Multimedia)
Pyhton dili görsel açıdan çok varlıklı bir dil değildir. Dolayısıyla ön uç (front-end) yerine daha çok back-end (arka uç) alanında kullanılır. Ancak arayüz geliştirmek için Tk gibi araçlar bulunmaktadır. Tk dışında çoğu C/C++ tabanlı olan Qt, GTK ve wxWidgets gibi betiklikler de arayüz geliştirme için kullanılabilir. Kullanıcı görsel arayüzü dışında işitim (audio) ve görüntü (video) gibi çokluortam (multimedia) araçları için bir takım destekleri bulunmaktadır.
Sayısal (Numerical)
NumPy
Sayısal işlemleri yapmak için NumPy adlı bir betiklik bulunmaktadır. Yalnızca sayılar için değil gelişmiş matematik işlemler için de destek bulunmaktadır. Bu biçimiyle,bir çok bilim dalı ya da iş alanında kullanılabilecek, hemen her temel işlevi barındırmaktadır. Genel olarak, çok buyutlu dizi (multi-dimensional array) biçimde, çok sayıda veri içeren konularda ile çalışmak için araçlar içerir. Başka bir deyişle, büyük boylu sayılarla çalışmak için kullanılır.
SciPy
Temel işlevlerin ötesinde bir çok bilim dalında hazır bir çok özellik içeren betikliklerden birisi de SciPy adını taşır. Bu betiklik; çizgizel cebir (linear algebra), türetme (derivation) ve bütünleme (integration), sayımbilim (statistics), eniyileme (optimization) konularında bir çok araç içermektedir. Bunun dışında içucaylama (interpolation) ve dışucaylama(extrapolation), imgecilik (imaging), belgi süreçleme (sign processing), hızlı Fourier dönüşümü (fast Fourier analysis) gibi bir çok bilim dalında geçerli araçları içermektedir. SciPy betikliği NumPy betikliği üzerine kurulmuştur. Dolayısıyla SciPy kurmak aynı zamanda NumPy kurulması anlamına da gelir.
Pandas
Python dilinde veri (data) ile çalışma için gerekli veri yapıları (data structures) içeren betiklik Pandas olarak adlandırılmıştır. Tek boyutlu veriler
derney (series) ve iki boyulu veriler
veri çatısı (data frame) olarak adlandırlır. Dosya ya da veritabanı kaynaklarından gelen veriler üzerinde çalışmak için çok sayıda araç içerir. Verinin yanlışlıklarının düzeltilmesi ve yitik verilerin doldurulması ile ilgi çeşitli araçlar içerir. Pandas betikliğindeki veriler işlenmeye ve görselleştirmeye hazır durumdadır.
Bozuntulama (Scraping)
Requests
HTTP iletişim kuralı ile örün (web) içeriğini indirmek için kullanılan betikliklerden (kütüphanelerden) birisi Requests adını alır. Python dilinin kendisinde olan HTTP desteğinin daha geniş bir sürümünü sunar. Ancak veri üzerinde çalışmak için gerekli bir takım araçları da sağlayarak geliştiriciyi iş yükünden kurtarır. Bu biçimiyle örün emekleyici (web crawler) gibi işlemler için uygundur
Görselleştirme (Visualisation)
Mathplotlib
Verilerin görselleşirme (visualisation) işlemi için Mathplotlib adı verilen betiklik kullanılılır. Söz konusu betiklikle çizge (graph) üretme için temel araçlar içerir. Amacı çizim işlemleri için sağlam bir alt yapı sağlamaktır. Bu araç, yalnızca çizim için değil çizilenleri bir imge (image) için saklayıp sunma için de destek sağlar.
Seaborn
Temel çizgeleme (graphics) ötesinde başta sayımbilim (statistics) gibi alanlarda çizimler yapmak için kullanılan betikliklerden birisi de Seaborn adını taşır. Bu betiklik Mathplotlib üzerine kurulmuştur. Ancak türlü veri yapılarından çizim yapılması işlemin kendiliğinden gerçekleştirir. Başka bir deyişle yalnızca veriler ve başlıklar verilirek çizge oluşturulabilir. Bu araçla çizgeleme (graphics), çizenek (diagram), çizit (chart) gibi çizime dayalı bir çok görsel sonuç üretilebilir.
Düzenek Öğrenmesi (Machine Learning)
Skitlearn
Python dili ile düzenek öğrenmesi (machine learning) yapabilmek için Skitlearn adı verilen betiklik kullanılabilir. Bu konuda
sınıflandırma (classsification),
gerileme (regression),
salkımlama (clustering) gibi düzenek öğrenmesine ilişkin bir çok alanda çok sayıda yöntem ve algoritma içermektedir. Bunların arasında
Yapay Sinir Ağı(Artificial Neural Network),
K-En Yakın Komşu(K-Nearest Neighbour),
Toy Bayes Sınıflayıcısı(Naive Bayesian Classifier),
Karar Ağacı (Decision Tree),
Rastgele Orman(Random Forest),
K-Bayağılar Salkımlama(K-Means Clustering),
Genetik Algoritmalar (Genetic Algorithms) gibi konular sayılabilir. Bu betiklik SciPy ve NumPy üzerine kurulmuştur.
TensorFlow
Google kurumunun veri akışı (data flow) gibi veri işlemekle ilgili betikliğinin adı TensorFlow adını taşır. Bu betiklikte düzenek öğrenmesi (machine learning) ile ilgili bir çok algoritma desteği olduğu için bu alanda da kullanılır. Bilimsel işlemlerin ötesinde büyük veri (big data) ve dağıtık bilgisayım (distrubuted computing) alanında gerçek dünyaya ilişkin yüksek başarımlı çalışma olanağı sağlar.
Bu konularda ayrıntılı bilgi, kurs, özel ders, uzaktan eğitim, ödev ve proje destek, kitap ve video için tıklayın :
Python Business Intelligence, Data Science ve Machine Learning