Python Kütüphaneleri

Merve Tatlıdil
Data Runner

--

Merhaba, Bu haftaki yazımda Python kütüphanelerinden bahsetmek istedim. Python, nesne yönelimli, yorumlamalı yüksek seviyeli bir programlama dilidir. Girintilere dayalı basit bir sözdizimi olması dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Ben C ve Java öğrendikten sonra Python ile tanışmıştım ve kodların yazımı onlara göre daha kolay gelmişti. Bunun dışında hemen hemen her türlü platformda çalışması ve farklı alanlarda kullanılabilecek güzel kütüphanelere sahip olmasıyla da yazılım geliştiriciler tarafından son zamanlarda sıkça tercih edilmeye başlanmıştır.

Python kütüphanelerini kullanmak isteyebileceğimiz alanlara göre sınıflandırdım :

1-)Veri Bilimi (Data Science)

Yazıda bahsettiğim alanlar içinde benim ilgilendiğim alan olan veri bilimi ile başlamak istiyorum. Daha önceki yazılarımda “Veri bilimi geçmiş, şimdiki ve gelecekteki verilerden anlamlı veriler elde etmeyi hedefler” demiştim.Veri bilimi sayesinde elimizde bulunan müşteri bilgilerinden hangi müşterinin riskli hangi müşterinin daha az riskli olduğunu belirleyebiliyoruz ya da kanser tespiti yaparken veri bilimiyle doktorlar kararlarını destekleyebiliyor. Bütün bunları yaparken yapılması gereken 2 şey var aslında veriyi tanıyıp hazırlamak ve algoritma uygulamak. Elbette bu iki aşamanın kendi içlerinde bazı süreçleri var. Python kütüphaneleri de tam burada sahne alıyorlar.

1-Verilerin Hazırlanması ve Tanınması

-Pandas : Sahip olduğu birçok özellik sebebiyle bizler gibi veri ile uğraşan, makine öğrenmesi algoritmalarıyla çalışanlara büyük kolaylıklar sağlamaktadır. Pandas’ın bazı önemli özelliklerinden bahsedecek olursak :

  • Verileri yönetmek ve analiz etmek için hızlı ve verimlidir.
  • DataFrame ve daha yüksek boyutlu nesnelerden sütunlar eklenebilir veya silinebilir.
  • Veri hizalama ve eksik verilerin entegre olarak işlenmesini sağlar.
  • Diğer Python veya Numpy veri yapılarındaki düzensiz, farklı dizinlenen verileri dataframe nesnelerine dönüştürmeyi kolaylaştırır.
  • Verileri toplamak ve dönüştürmek için veri kümelerinde böl-uygula-birleştirmek işlemlerinde kullanabilmek için güçlü ve esnek “group by” işlevine sahiptir.

-Numpy : Çok boyutlu dizilerle ve matrislerle çalışmamızı sağlayan ve matematiksel işlemler yapabileceğimiz Python dili kütüphanelerindendir. Matematiksel işlemlerde kolaylık sağlar böylece hesaplamalar hızlı bir şekilde gerçekleşir. Numpy kütüphanesini daha önce anlattığım yazıma buradan erişebilirsiniz.

2-Veri Görselleştirme

Görselleştirme veriyi analiz etmenin ve veriden belirli sonuçlar çıkarmanın (bilgi) en kolay yoludur. Yaptığımız bu görselleştirmeler, karmaşık bir şekilde görünen verileri kolayca anlamamıza yardımcı olur. Görselleştirmeler verideki ilişkileri, aykırı değerleri de fark etmemizi sağlar. Veri görselleştirme, veri biliminde keşifsel veri analizi (EDA) yapmamızı sağlar.

Matplotlib ve Seaborn verileri statik bir şekilde görselleştirir.

-Matplotlib : En popüler görselleştirme kütüphanesidir diyebiliriz. 2D veya 3D grafikler için matplotlib kullanabiliriz. Genel olarak veri görselleştirmeye ilk olarak matplotlib kütüphanesi ile başlanır. Matplotlib kütüphanesini ayrıntılı olarak incelemek isterseniz güzel bir yazı dizisi bırakıyorum.

-Seaborn : Seaborn’da bir veri görselleştirme kütüphanesidir.Seaborn kullanıcılara istatiksel görselleştirmeler yapmaları için high-level (yüksek seviyeli) bir arayüz sunar. Seaborn’u buradan ayrıntılı inceleyebilirsiniz.

Matplotlib ve Seaborn’u karşılaştırmak istersek :

  • Matplotlib söz dizimi daha karmaşık ve uzundur.
  • Matplotlib ile plotları daha anlaşılır ve görsel olarak daha iyi tasarlamak biraz daha zordur. Seaborn renk paletleri ve çeşitli grafikleri ile daha iyi bir tasarım sağlar.
  • Seaborn bellek sıkıntısı yaratabilir.

Bokeh ve Plotly veriyi dinamik olarak görselleştirmemizi yani grafik üzerinde gezindiğimizde, üzerinde bulunduğumuz noktanın bilgilerini de görüntülememizi sağlar.

-Bokeh : İnteraktif bir veri görselleştirme kütüphanesidir. Matplotlib, Seaborn veri görselleştirme kütüphanelerinin tersine grafikleri Html ve Javascipt kullanarak gösterir.

-Plotly : Plotly, Python, R, MATLAB, Perl, Julia, Arduino ve REST için çevrimiçi bilimsel grafikler sağlar. Web tabanlı bir görselleştirme aracıdır. Oldukça iyi görselleştirmeleri arasında kontur grafikleri, üç boyutlu araziler ve 3B grafikler bulunur.

3-Makine Öğrenmesi

-Scikit Learn : yapay öğrenme alanında en yaygın olarak kullanılan kütüphanelerden biridir. Doğrusal regresyon, lojistik regresyon, karar ağaçları, rastgele orman gibi birçok temel yöntemi içeren bu kütüphane, Anaconda ile beraber geliyor. Pek çok algoritmayı bulundurması ve eksik değerleri doldurma, çapraz doğrulama yapma, sonuçları değerlendirme için ayrı ayrı modülleri sayesinde başka bir paket kullanma ihtiyacımız kalmıyor.

4-Derin Öğrenme (Deep Learning)

-Tensorflow : Makine öğrenmesi için Google tarafından geliştirilen uçtan uca bir açık kaynak platformudur. Makine öğrenmesi uygulamaları için kapsamlı, esnek araçlar ve kütüphaneler ile topluluk kaynakları içeren bir ekosisteme sahiptir. Çok sayıda soyutlama seviyesi bulunduğu için çözülmek istenilen probleme uygun olanı seçme imkânı sunar.

- Keras : Neredeyse her tür derin öğrenme modelini tanımlamak ve eğitmek için uygun bir yol sağlayan Python için bir derin öğrenme kütüphanesidir. Keras, Tensorflow , Theano ve CNTK üzerinde çalışabilen Python ile yazılmış bir üst düzey sinir ağları API’sıdır. İçerdiği çok fazla işlevsel fonksiyon sayesinde Keras kolayca bir derin öğrenme modeli oluşturmamızı ve onu eğitmemizi sağlar.

- Pytorch : PyTorch, grafik işlem birimlerinin gücünü kullanan Python tabanlı bir bilimsel bilgi işlem paketidir. Ayrıca, maksimum esneklik ve hız sağlamak için kullanılan deep learning araştırma platformlarından biridir. En üst düzey özelliklerden ikisi; güçlü GPU hızlandırma desteğiyle tensor hesaplamaları ve teyp tabanlı bir otograd sistemlerinde derin sinir ağları oluşturmaktır.

2-) Web Uygulamaları

1-Web Sitesi Geliştirme

-Django : Ücretsiz, açık kaynaklı bir Python framework’üdür. Web uygulamasını sıfırdan oluşturmak için oldukça kullanışlıdır. Django kütüphanesi pek çok yönetim aracına sahiptir. Böylelikle kullanıcı başka araçlar kullanmadan kod oluşturabilir. Django, daha iyi Web uygulamalarını daha hızlı ve daha az kodla oluşturmamızı sağlar.

-Flask : Flask, Django’ya göre daha küçük sayılabilecek ancak oldukça güçlü ve hızlı uygulama geliştirebileceğimiz bir kütüphane. Üstelik python bilginiz olmasa bile bu framework ile çalışırken kolaylıkla öğrenebilirsiniz. Flask küçük çaplı projeler için size hem hız kazandırır hem de gereksiz konfigürasyonlar ile uğraşmanızın önüne geçer.

2-Web Scrapping (Veri Kazıma)

Web kazıma ile web sitelerinden ihtiyacımız olan bilgileri çıkartabiliriz. Örneğin elimizde bir web sitesi olsun. Bub web sitesinde bazı kişilere ait ad, soyad, telefon, adres, cinsiyet gibi bilgiler olsun. Biz bu bilgileri elde etmek istiyoruz. İstediğimiz bilgilerin bulunduğu yerleri işaretleyip sonra bu bilgileri temizleyecek ve tercihimize göre veritabanında ; CSV, JSON veya TSV dosyalarında saklayacağız.Bu işlemleri Python’da yapabilmek için Selenium ya da Beautiful Soup

-Beautiful Soup : Web scraping için kullanılan en yaygın kütüphanedir. Popüler olmasının başlıca nedenlerinden biri, çalışmanın daha kolay ve yeni başlayanlar için çok uygun olmasıdır. Beautiful Soup Python için bir HTML ve XML ayrıştırıcısıdır. Bu kütüphaneyi kullanarak ilk olarak sayfaların html kodlarını indirebilir ve sonra, bu kodları parçalayarak verileri kazıyabilirsiniz.

-Selenium : Selenium kütüphanesi aslında web uygulamalarının otomatik testi için yapılmış bir Python kütüphanesidir. Son zamanlarda veri bilimciler tarafından çok sık kullanılan bir kütüphanedir. Bazı sayfalar içeriklerini dinamik olarak sunar, yani tarayıcıya her yüklendiklerinde farklı görünebilirler. Beautiful Soup ile dinamik olarak kodlanmış web sitelerinden kolayca veri çekemeyebiliriz. Bunun nedeni bazen sayfada mevcut olan verilerin JavaScript aracılığıyla yüklenmesidir.Selenium bu işi yapmakta oldukça iyidir. Bir web sayfasında JavaScript çalıştırma yeteneği, Selenium’a dinamik olarak doldurulmuş web sayfalarını kazıma gücü verir. Ama burada bir takas söz konusudur. Her sayfa için JavaScript yükler ve çalıştırır, bu da doğal olarak sayfayı yavaşlatır. Bu sebepten ötürü Selenium, büyük çaplı projeler için çok tercih edilmez.

3-Masaüstü Arayüz Geliştirme

-Tkinter : Tkinter, Python programlama dili ile birlikte gelen grafiksel kullanıcı arayüzü (GUI) aracıdır.Sadeliği ve grafik kullanıcı arayüzü ile ünlüdür. Tkinter en yaygın kullanılan yöntemdir. Tkinter ile Python, GUI uygulamalarını oluşturmanın en hızlı ve en kolay yoludur. Tkinter terimi Tk interface’in kısaltmasıdır.

-PyQt : PyQt, Python kodlama dili ile Qt kütüphanesinin birleştirilmesi sonucu oluşturulmuştur. PyQt, Python ve C++ çapraz platform uygulama çerçevesinde ve çapraz platform tarafından uygulanan Python dilini bir araya getiren bir köprü görevi görmektedir. PyQt5 beraberinde grafik kullanıcıları için ara birimi tasarımcısı olan Qt Designer ‘i içerisin de bulundurmaktadır. PyQt, Qt Designer ile yeni Qt kodları oluşturabilir ve Qt Designer aracılığıyla yazılmış yeni arayüz kodları ekleyebilirsiniz. PyQt tek bir modül değil, bir modül koleksiyonudur.

-WxPython : Platformlar arası GUI kütüphanesini C++’dan Python’a getirir. WxPython, farklı işletim sistemlerinde Tkinter’a göre biraz daha doğal görünür, çünkü bir GUI oluşturmak için ana bilgisayar sisteminin widget’larını kullanır. Başlangıç için oldukça uygun bir kütüphanedir ve geliştirici topluluğu sürekli büyümektedir.

4-Veritabanı

-SQLite : SQLite kullanımı ve kurulumu oldukça basit olan bir veritabanı kütüphanesidir.

  • SQLite’ın çalışması için herhangi bir sunucuya ihtiyacı olmadığı için, kurulum ve ya konfigürasyon adımları yoktur.
  • Her veritabanı için sadece bir dosya vardır. Bu da veritabanının yedeklenmesini ve kopyalanmasını kolaylaştırır.
  • SQLite, onlarca programlama dili içerisinde rahatlıkla kullanılabilir.

5-Oyun Geliştirme

-Pyglet : Bu kütüphaneyi diğer oyun kütüphanelerinden ayıran en önemli özelliği 3D oyun geliştirebilme özelliğidir. Ayrıca Minecraft ‘ın geliştirilmesinde rol oynadığı için oldukça ünlüdür.

-Pygame, Python’ ın oyun programlama denince akla ilk gelen kütüphanelerindendir. Pygame ile grafiksel şekiller çizmek, animasyon hazırlamak, ses dosyası oynatmak mümkündür ve yazılan oyunlarda klavye, fare, oyun kolu ile etkileşim kurulabilir. Bu kütüphane ile 2d oyun geliştirebilirsiniz.

Sağlıkla kalın!

--

--