Python Kütüphaneleri ve Özellikleri
Merhaba, iyi günler.
Bugünkü yazımda; çok çeşitli alanlarda kullanılan güçlü, dinamik altyapısı, anlaşılır sade dili ile oldukça popüler olan Python (birçok ek özelliğe sahip) diline yönelik oluşturulmuş kütüphane (library), çatı (framework) ve programlara göz atacağımız kısa notları aktarıyor olacağım.
Kısaca Python’a yönelik derlenmiş bir ek paket-araç tanıtım fihristi olarak nitelendirilebilir.
Ağırlıklı olarak veri işlemesi ve raporlama alanı üzerinde faaliyet gösteren kurum-kuruluşlarda Python vazgeçilmez olarak nitelendirilmektedir.(Python Ek Bilgiler)
Raporlama ve Veri Görselleştirme hizmetleri üzerine Microsoft’un popüler iş zekası ve raporlama aracı Power BI üzerindeki kullanabilen veri konnektör ve derleyicileri arasında Python oldukça fazla tercih edilmekte-kullanılmaktadır.
Kullanım seçenekleri-yöntemleri olarak; Power BI Desktop uygulaması içerisinden veri kaynağı erişimi ile Python Script seçeneğini seçerek uygulamamıza işlenmiş-işlenecek veri aktarabilir,
ya da Visualizations (Görselleştirme) içerisinden Python Visual öğesi ile mevcut verilerinizi baz alarak yüklü Python kütüphaneleri desteği ile ilgili verilerinizi anlık işleyerek raporlarınızda kullanabilirsiniz.
Raporlamalarımızdan anlamlı sonuçlar çıkartabilmek ya da çeşitli aksiyonlar alabilmek için aralıklı olarak verilerimizi işlemek ya da çeşitli algoritmik süreçlerden geçirmemiz gerekebilir.
Çoğu zaman ilgili bu süreçler çok zorlayıcı (İstatiksel hesaplamalar vb. kompleks işlemler) ve hataya açık olabilir.Bu hatalardan kaçınmak ya da minimize etmek adına ağırlıklı olarak dış veri kaynaklarında-işleyicilerinde (Pyhton – R vb. dillerde) hazır algoritmalar içeren kütüphaneler kullanmak çözüm olarak gösterilebilir.
Bu yazı içeriğinde Python üzerinde çokça kullandığım ve yazımı hazırlarken araştırarak öğrendiğim paket-program içeriklerini ele almaya çalıştım.
Dilerseniz hızlıca göz atmaya başlayalım;
NumPy (Numerical Python – Sayılsal Python) : Veri Bilimi çalışmaları için olmazsa olmaz olarak ifade edilen-gösterilen çok büyük ölçekteki matematiksel-bilimsel hesaplamaları kolay, hızlı ve esnek bir şekilde gerçekleştirmemizi sağlayan çözümleri içeren kütüphanedir.
Ağırlıklı olarak Veri Madenciliği, Makine Öğrenmesi, Veri Analizi, Tek-Çok Boyutlu dizi içeren hesaplama yapılarında kullanılır.
*Kurucu-Geliştirici-Destekçi : Travis Oliphant (Geliştirici-Open Teams)
SciPy (Scientific tools for Python – Python için Bilimsel Araçlar) : Veri Bilimi çalışmaları için bir diğer olmazsa olmaz olarak gösterilen, NumPy‘e göre matematiksel çözümlerden ziyade biraz daha bilimsel çözümlerin ağırlıklı olarak ele alındığı (Tek boyutlu bir Schrödinger Eşitliği‘nin çözümlemesi gibi.) kütüphanedir.
Kullanıcılar-Geliştiriciler arasında NumPy ve SciPy kütüphanelerinin birlikte kullanımı gerçekleştirildiğinde MatLab programının sağladığı çözümlere benzer işlevler sağlayacağı dile getirilmektedir.(Yeterince evet!)
*Kurucu-Geliştirici-Destekçi : Travis Oliphant – Pearu Peterson – Eric Jones (Geliştiriciler)
MatPlotLib (Mathematical Plot Library – Matematiksel Çizim Kütüphanesi): Veri Bilimi çalışmaları için sayısal matematik hesaplamalarını 2 ya da 3 boyutlu görsel çıktılar olarak almamızı sağlayan bir çizim (görselleştirme) kütüphanesidir.
Dökümantasyon içeriği zengin, öğrenimi kolay ve uygulaması basit olduğundan çokça tercih edilmektedir.
*Kurucu-Geliştirici-Destekçi : John D. Hunter (Kurucu-Geliştirici-NumFOCUS)
SciKit-Learn (Science Kit/Kits Learn – Bilim Öğrenim Kiti) : Veri Bilimi ve Makine Öğrenmesi çalışmaları için (Veri İşleme, Regresyon,Küme Analizi vb.) kullanılan çok yönlü bir kütüphanedir.
Scikit-learn; NumPy , SciPy ve Matplotlib kütüphaneleri ile ağırlıklı olarak ortak kullanılmaktadır, bu nedenle etkili bir şekilde uygulamada bulunmak için bu üç kütüphanenin en azından temel bilgilerini bilmeniz yapacağınız çalışmalarda kolaylık sağlayacaktır.
*Kurucu-Geliştirici-Destekçi : Cournapeau David (Geliştirici-Mercari)
SymPy (Symbolic Python – Sembolik Python) : Sembolik Matematik analizleri ve uygulamaları için kullanılan oldukça popüler bir kütüphanedir.
Ek kütüphane bağımlılığı çok düşüktür.Gerçek ve kayan noktalı sayılar için hesaplama sağlayan MpMath kütüphanesi dışında bariz gereksinim gereği duyulan bir kütüphane yoktur.
*Kurucu-Geliştirici-Destekçi : SymPy Development Team (Özel Geliştirici Ekibi)
Keras : Birçok derin öğrenme modelini tanımlamak, anlamlı hale getirmek ve eğitmek için uygun bir çözüm yolu sağlayan derin öğrenme kütüphanesidir.
Ek olarak; Tensorflow, Theano, PlaidML ve CNTK üzerinde çalışabilen Python ile yazılmış bir üst düzey sinir ağları için API olarak ifade edilmektedir.
*Kurucu-Geliştirici-Destekçi : François Chollet (Geliştirici-Google)
PyTorch (Python Torch – Python Meşalesi) : Torch kütüphanesine dayanan grafik işlem birimlerinin gücünü kullanan bir bilimsel bilgi-doğal dil işleme kütüphanesidir.
Facebook’un yapay zeka laboratuvarında geliştirilen kütüphane TensowFlow alternatifi olarak gösterilmektedir.(Kimilerine göre daha iyisi!)
*Kurucu-Geliştirici-Destekçi : Adam Paszke – Sam Gross – Soumith Chintala
Gregory Chanan (Geliştiriciler-Google–Facebook–Facebook–Facebook)
ggplot2 (Grammer of Graphic Plot – Grafik Çizim Grameri) : İstatistiksel programlama dili R ve Python için bir veri görselleştirme kütüphanesidir .
Kullanıcılar arasında popüler olan bu kütüphane ağırlıklı olarak karmaşık sonuç çıktılarını görselleştirmek için kullanılır.
*Kurucu-Geliştirici-Destekçi : Hadley Wickham – Winston Chang (Geliştirici-RStudio-RStudio)
TensorFlow (Tensor Flow – Tensör* Akışı) : Bir dizi görev arasında veri akışı ve türevlenebilir programlama için kullanılan ücretsiz ve açık kaynaklı bir kütüphanedir.
Ağırlıklı olarak sembolik matematik işlemleri ve sinir ağları gibi makine öğrenimi uygulamaları için kullanılır. Google’da hem araştırma hem de üretim için önemli bir yeri vardır.
*Tensör : Vektörler ya da skalerler büyüklükler arasındaki doğrusal ilişkileri tanımlayan geometrik nesnelerdir.
Kısacası; vektörler ya da skalerler arasındaki bağlantıyı sağlayan operatördür.
*Kurucu-Geliştirici-Destekçi : Google Brain Team (Geliştiriciler)
Pandas : Veri işlemesi ve analizi için Python programlama dilinde yazılmış olan bir kütüphanedir.
Temel olarak zaman etiketli serileri ve sayısal tabloları işlemek için bir veri yapısı oluşturur ve yapıyı çeşitli işlemler ile işler-analiz eder.
*Kurucu-Geliştirici-Destekçi : Wes McKinney (Geliştirici-Ursa Labs)
GnuPlot : Fonksiyon ya da verilere uygun iki veya üç boyutlu grafik çizme, veri görselleştirme programı- ek kütüphanesidir.
Çizilen grafikler kalitesinden dolayı ağırlıklı olarak akademik çalışmalarda çokça tercih edilmektedir.
*Kurucu-Geliştirici-Destekçi : Thomas Williams – Colin Kelley (Geliştirici-?-Invoca)
Theano : Matematiksel ifadeleri, özellikle matris değerli yapıları-ifadeleri işlemek ve değerlendirmek için optimize eden bir kütüphanedir.
İleri düzey matematiksel araştırma ve çalışmalar (Etkili sembolik türev alma, Hız ve kararlılık optimizasyonları vb.) için sıkça kullanılmaktadır.
*Kurucu-Geliştirici-Destekçi : MILA–Montreal Institute for Learning Algorithms (Geliştiriciler)
Caffe : Uygulamalar oluşturmak için tasarlanmış ve geliştirilmiş bir derin öğrenme çatısı – çerçevesi (framework) – kütüphanesidir.
Sinir ağlarını metin ve kod yazmadan soruna hızlı bir şekilde uygulamanızı sağlar.
*Kurucu-Geliştirici-Destekçi : Yangqing Jia – Berkeley Vision and Learning Center
(Geliştirici-AliBaba-Geliştirici Ekip)
PyMC3 : İleri düzey Markov Zinciri, Monte Carlo ve Varyasyonel Uydurma algoritmalarına odaklanan, istatistiksel modelleme ve olasılıklı makine öğrenimi için kullanılan bir analiz kütüphanesidir.
Çok çeşitli alanlarda (Moleküler Biyoloji, Kristalografi, Kimya, Ekoloji vb.) oldukça çokça tercih edilen popüler bir kütüphanedir.
*Kurucu-Geliştirici-Destekçi : Thomas Wiecki (Geliştirici-Kurucu-PyCM Lab)
Chainer : Python’da NumPy ve CuPy Python kütüphanelerinin üstünde yazılmış açık kaynaklı bir derin öğrenme çerçevesidir-kütüphanesidir.
Geliştirme, IBM, Intel, Microsoft ve Nvidia ile ortaklaşa Japon girişim şirketi Preferred Networks tarafından yönetiliyor.
*Kurucu-Geliştirici-Destekçi : Toru Nishikawa (Geliştirici-CEO-Preferred Infrastructure)
Gensim : Modern istatistiksel makine öğrenimi kullanarak denetimsiz konu modelleme ve doğal dil işleme için oluşturulmuş açık kaynaklı bir kütüphanedir.
Gensim ağırlıklı olarak Python ve Cython‘da uygulanmaktadır.
*Kurucu-Geliştirici-Destekçi : Radim Řehůřek (Geliştirici-RaRe Technologies)
Statsmodels (Statistical Models – İstatistiksel Modeller) : İstatistiksel modelleri tahmin etmek ve istatistiksel testler yapmamızı sağlayan bir kütüphanedir.
Farklı veri türleri işlemesi, geniş tanımlayıcı istatistik yapısı, istatistiksel test çözümleri, çizim fonksiyonu ve sonuç istatistikleri listesi gibi çözümlerinden dolayı çokça tercih edilmektedir.
*Kurucu-Geliştirici-Destekçi : Wes McKinney (Geliştirici-Ursa Lab)
spaCy : Gelişmiş doğal dil işleme (NLP) için oluşturulmuş açık kaynaklı bir kütüphanedir.
Uber, AirBnb Microsoft gibi büyük şirketlerin altyapısında kullanılmaktadır.
*Kurucu-Geliştirici-Destekçi : Ines Montani – Matthew Honnibal (Kurucu-Geliştirici-Explosion)
HyperLearn (Hiper Öğrenme) : Statsmodel, Pandas, PyTorch, NoGil, Numba, Numpy, Scipy & Lapack gibi kütüphanelerin ortak çözümlerini-kullanımlarını içeren kompleks bir kütüphanedir.
NLTK (Naturel Language Toolkit – Doğal Dil Araç Seti) : Doğal Dil Araç Seti veya daha yaygın olarak ifade edilen NLTK, sembolik matematik ve istatistiksel analizler için doğal dil işleme çözümleri adına kullanılan popüler bir kit-kütüphanedir.
Seaborn : İstatiksel hesaplamalara yeni bir anlam ve farklı bir bakış açısı kazandırmak için kullanılan oldukça efektif ve bir o kadar popüler olan bir veri görselleştirme kütüphanesidir.
Matplotlib, Numpy, Pandas, Scipy, Statsmodel ve PyData gibi çevik ve çok yönlü kütüphaneler üzerine alt yapısı yapısı oluşturulmuştur.
Plotly : R, Python ve Javascript dilleri ile uyumu çalışan veri görselleştirme ve dashboard oluşturmaya yarayan çeşitli fonksiyonlar içeren bir kütüphanedir.
MpMath (Midle Point Mathematic – Orta Nokta Matematiği) : Gerçek ve kompleks kayan noktalı sayılarla hassas hesaplama yapmayı sağlayan Python kütüphanesidir.
İçerisinde çeşitli matematiksel fonksiyonları da (Sayısal Entegrasyon, Sonsuz Seri Sınırı vb.) barındırmaktadır.
Scrapy : Web üzerindeki verileri-içerikleri taramamızı sağlayan açık kaynaklı bir çerçevedir.
Html ve Xml gibi yapısal içeriklerden verilerin ayıklanmasını sağlamaktadır.
Başlangıçta sadece web kazıma için tasarlanmış olmasına rağmen, API’leri kullanarak genel amaçlı bir web tarayıcısı olarak ya da veri ayıklamak için de kullanılabilir.
*Kurucu-Geliştirici-Destekçi : Shane Evans (Geliştirici-Scrapinghub)
Requests : Apache Lisansı 2.0 altında yayınlanan bir Python HTTP kütüphanesidir.
Genel olarak Web üzerindeki isteklerinizi yönetmenizi sağlamaktadır.
*Kurucu-Geliştirici-Destekçi : Kenneth Reitz (Geliştirici-Cloud Reach)
Beautiful Soup : HTML ve XML belgelerini işlemek-ayrıştırmak için kullanılan bir pakettir-kütüphanedir.
İlginç ama adını Alice Harikalar Diyarında ki kaplumbağanın söylediği şarkıdan almaktadır.
Flask : Altyapısı Python ile yazılmış-geliştirilmiş bir mikro (minimal) web çerçevesidir.
Mikro yapıda olan bu çerçeve-framework bir o kadar da güçlü ve esnek kullanım kolaylıkları sunmaktadır.
Bokeh : Temel yapılarda kolay ve hızlı bir şekilde verilerinizi görselleştirmeyi sağlayan kütüphanedir.
Matplotlib, Seaborn vb. veri görselleştirme kütüphanelerinin aksine Bokeh grafikleri Html ve Javascipt kullanarak gösterir.
wxPython : Python programlama dili için platformlar arası GUI API – Grafiksel Kullanıcı ara yüzü wxWidgets paketleyicisidir-kütüphanesidir.
Tkinter‘in alternatiflerinden biri olarak belirtilmektedir.Python genişletme modülü olarak uygulanır.
Pillow – Python Imaging Library (Python Görsel Kütüphanesi) : Python programlama dili için geliştirilen, açık kaynak kodlu grafik işleme kütüphanesidir.
Kütüphane, içinde barındırdığı hazır fonksiyonlar sayesinde programcıya üstün bir grafik işleme imkânı sunar.
Grafik işlemeden kasıt ise; özelleşmiş çizimler, boyutlandırma-ölçeklendirme işlemleri, renk değerlerini düzenleme vb. görüntü işleme-düzenleme faaliyetleri olarak nitelendirilebilir.
SQLAlchemy (SQL Simyası) : MIT Lisansı altında yayınlanan Python programlama dili için açık kaynaklı bir SQL araç takımı ve ORM (Object Relational Mapping) – nesne ile ilişkisel eşleştiricisidir-kütüphanesidir.
Kısaca; veritabanı tablolarını Python objeleri ile eşleştirip, objeler üzerinden veritabanı veri işleme işlemleri yapmamızı sağlar.
Twisted – Twisted Matrix Lab : Python’da yazılmış ve açık kaynak altında lisanslanmış olan olay odaklı bir ağ oluşturma motorudur-kütüphanesidir.
Mail sunucusu-alıcısı, internet üzerinden oynanabilen oyunlar vb. ağ kaynaklı tüm yapıları inşa etmenizi sağlar.
Pygame – Python Game : Python programlama dilinde etkileşimli oyunlar hazırlamak için SDL (Simple Direct Media Layer) kütüphanesi üstünde kurulmuş bir kütüphanedir.
Pygame’in en önemli özelliklerinden birisi, pek çok platformda çalışmasıdır. Pygame, kullanıcılara birçok medya türünün desteklendiği bir arayüz sunar.
Nicholas Dudfield,Thomas Kluyver (Geliştiriciler)
Pyglet : Oyunların ve multimedya uygulamaların oluşturulması için nesne tabanlı bir uygulama-programlama arabirimi sağlayan kütüphanedir.
Pencereleme kurgusunu, OpenGL grafiklerini, resim, video ve müzik derlemeyi (Multimedya öğeleri) destekler.
PyQt : Python eklentisi olarak uygulanan platformlar arası GUI araç seti Qt’nin bir Python bağlamasıdır-eklentisidir.
Günümüzde popülerliği hızla yükselen ve toplulukların üzerindeki destekleri katlanarak artan Python ile ilgili kütüphanelerin-çatıların-araçların sayısı yüzleri geçebilir.
0 Yorumlar