Veri Bilimi için Python

 Çözümlü Örnekler ve Uygulama Gösterimleriyle

Burak ÖZKAN ve Yalçın ÖZKAN (Ph.D)

 

 

 

 

 

 

 

ISBN: 978-605-9594-, Ocak 2023

320 sayfa, (16x24 cm2), 80 gr 1. hamur kağıt           şimdi satın al


Veri Bilimi için Python


Bu kitabımızda veri biliminin en güçlü kodlama araçlarından birisi olan Python Programlama Dili, veri bilimi uygulamaları açısından ele alınmış ve örnek uygulamalarla incelenmiştir.

Kitap kapsamında Python dilinin temel özellikleri ele alınarak, programın yüklenmesi ve konsol üzerindeki işlemlerin yanı sıra Python veri yapıları konusu ayrıntılı olarak ele alınmıştır; Numpy ve Pandas veri yapıları, program denetimi,  giriş/çıkış işlemleri, fonksiyonların düzenlenmesi ve grafiksel çalışmalarla ilgili konular pratik örneklerle açıklanmıştır.

Ayrıca, veri biliminin en önemli bileşenleri arasında bulunan "istatistik" ve "makine öğrenmesi" konuları uygulamalı olarak ayrı ayrı bölümler şeklinde ele alınmıştır.



İçindekiler

Önsöz

 

Bölüm 1. Python Programlama Diline Giriş

1.1.   Bölümün Amacı

1.2.   Python Tarihçesi

1.3.   Python Kurulumu

1.4.   Python Arayüzleri

1.4.1.   Python Konsolu

1.4.1.1.   Python İfadeler

1.4.1.2.   Komut Satırında Hesaplama İşlemleri

1.4.1.3.  Python Fonksiyonlarına Kısa Bakış – print() Fonksiyonu

1.4.2.  Editör Programı

1.5.        Değişkenler

1.5.1.  Değişkenlere Değer Atamak

1.5.2.  Yerel ve Küresel Değişkenler

1.6.   Açıklama Satırlarının Eklenmesi

1.7.   Değişkenlere Etkileşimli Bilgi Aktarma

1.8.   Python Anahtar Kelimeleri

1.9.   Python Yardım Fonksiyonu

1.10.     Modüller ve import Deyimi

1.10.1.    Modül Yükleme

1.10.2.    Modülü İçe Aktarma

1.10.3.    Modülün Bir Kısmını Yükleme

1.11.     Özet

1.12.     Alıştırma Soruları

 

Bölüm 2. Operatörler

2.1.   Bölümün Amacı33

2.1.1.   Aritmetik Operatörler       

2.1.2.   Atama Operatörleri          

2.1.3.   Karşılaştırma Operatörleri 

2.1.4.   Mantıksal Operatörler       

2.1.5.   Kimlik Operatörleri          

2.1.6.   Üyelik Operatörleri          

2.2.   Özet          

2.3.   Alıştırma Soruları

 

Bölüm 3. Python’da Sayılar

3.1.  Bölümün Amacı  

3.2.    Veri Türleri 

3.2.1.  Sayılar ~ Tamsayılar, Kesirli Sayılar, Karmaşık Sayılar

3.2.2.  Matematiksel Fonksiyonlar

3.2.3.  Trigonometrik Fonksiyonlar 

3.2.4.  Rastgele Sayı Fonksiyonları 

3.2.5.  Matematiksel Değişmezler

3.3.  Özet 

3.4.  Alıştırma Soruları

 

Bölüm 4. Liste Veri Yapı

4.1.   Bölümün Amacı

4.2.  Bir Boyutlu Listeler  

4.2.1.   Listelerin Yaratılması      

4.2.2.   Veri Türünün Öğrenilmesi

4.2.3.   İç İçe Listeler  

4.2.4.   Liste İndeksleri             

4.2.5.   Liste Elemanlarının İndeksi   

4.2.6.   Liste Elemanlarına Erişim

4.2.7.   Liste Dilimleme             

4.2.8.   Liste Elemanını Güncelleme  

4.2.9.   Listeye Eleman Ekleme   

4.2.10. Listeleri Birleştirme        

4.2.11. Araya Eleman Ekleme    

4.2.12. Liste Öğelerinin Silinmesi

4.2.13. Listeyi Sıralama             

4.2.14. Tekrarlı Eleman Sayısı    

4.3.  Çok Boyutlu Listeler

4.4.  Özet 

4.5.  Alıştırma Soruları

 

Bölüm 5. Numpy Veri Yapıları: Vektörler 

5.1. Bölümün Amacı

5.2.   Numpy Dizi ve Vektörleri

5.2.1.       Numpy Modülü

5.2.2.       Vektörlerin Yaratılması

5.2.3.       Aralıklar ile Vektör Yaratma

5.2.4.       Yatay ve Dikey Vektörler 

5.2.5.            Vektör Boyutlarını Görüntülemek

5.2.6.            Vektör Boyutlarını Değiştirmek   81

5.2.7.            Vektör Elemanlarına Erişim82

5.2.8.            Elemanların Güncellenmesi 83

5.2.9.            Aritmetik İşlemler        83

5.2.10.         Vektör Elemanlarını Sınırlandırma              84

5.2.11.         Vektörlerin Birleştirilmesi   85

5.2.12.         Vektör Elemanlarının Toplamı     86

5.2.13.         Sıralama      

5.2.14.         Sorgulama   

5.2.15.         Filtreleme    

5.3.   Özet

5.4.   Alıştırma Soruları

 

Bölüm 6. Numpy Veri Yapıları: Matrisler

6.1.   Bu Bölümün Amacı   91

6.2.   Python Matrisleri      92

6.2.1.       İç İçe Listelerle Matrislerin Yaratılması         

6.2.2.       Python Matrislerine Erişim    93

6.3.        Numpy ile Matris İşlemleri     93

6.3.1.       Matris Yaratma               94

6.3.2.       Sıfır Matrisinin Yaratılması   95

6.3.3.       İki Matrisin Toplanması   96

6.3.4.       Matrisler-arası Çıkarma İşlemi       96

6.3.5.       Matris Elemanlarını Toplamak       97

6.3.6.       Matris Çarpımı               98

6.3.7.       Matrisin Transpozesinin Elde Edilmesi           100

6.3.8.       Matris Elemanlarına Erişim ve Güncelleştirme102

6.3.9.       Matris Dilimleme            103

6.3.10.    Matris Köşegeni              104

6.3.11.    Matrisin Düzleştirilmesi   105

6.3.12.    Yeniden Biçimlendirme   106

6.3.13.    Yeniden Boyutlandırma   106

6.4.        Özet 

6.5.        Alıştırma Soruları

 

Bölüm 7. Demet, Küme ve Sözlük Veri Yapıları

7.1.   Bölümün amacı 109

7.2.   Demetler    109

7.2.1.   Demetlerin Yaratılması    110

7.2.2.   Demet Elemanlarına Erişim    111

7.2.3.   Demet Elemanlarının Sayısı   112

7.2.4.   Demet Çevirme               112

7.3.   Kümeler     112

7.3.1.       Küme Veri Yapısının Yaratılması   113

7.3.2.       Elemanlara Erişim          113

7.3.3.       Kümeye Çevirme            114

7.3.4.       Eleman Ekleme              114

7.3.5.       Eleman Silme  114

7.3.6.       Birleştirme      115

7.3.7.       Ortak Elemanlar             116

7.4.   Sözlükler    116

7.4.1.       Sözlüklerin Yaratılması   116

7.4.2.       Sözlük Elemanlarına Erişim   117

7.4.3.       Eleman Ekleme              118

7.4.4.       Elemanları Güncelleme   118

7.4.5.       Elemanları Silme            119

7.5.   Özet

7.6.   Alıştırma Soruları

 

Bölüm 8. Karakter Dizileri ~ Sözceler

8.1.   Bölümün Amacı

8.2.   Karakter Dizisi Yaratmak          122

8.2.1.       Çok Satırlı Karakter Dizileri  123

8.2.2.       Karakterlere Erişim ve Dilimleme  123

8.2.3.       Karakter Dizinin Bir Elemanı mı?  124

8.2.4.       Dizinin Eleman Sayısı     125

8.2.5.       Dizi İçindeki Karakterlerin Sayısı   125

8.2.6.       Karakter Dizilerini Birleştirmek     126

8.2.7.       Karakterlerin Büyüklüğüne Göre Düzenlenmesi 

8.2.8.       Dizi İçinde Arama İşlemi 128

8.2.9.       Karakter Konumunu Belirleme       129

8.2.10.    Karakter Dizilerinde Güncelleme    129

8.2.11.    Karakter Dizisini Bölmek

8.2.12.    Karakterleri Numaralandırma      131

8.2.13.    İlk Karakterin Test Edilmesi

8.2.14.    Karakter Boşluklarının Sıfırlarla Doldurulması 

8.3.        Özet

8.4.      Alıştırma Soruları

 

Bölüm 9. Pandas Veri Yapıları: Veri Çerçevesi

9.1.   Bölümün Amacı

9.2.   Veri Çerçevesi

9.3.   Veri Çerçevesinin Yaratılması

9.4.   Veri Çerçevesi İşlemleri

9.4.1.       Veri Çerçevesi Elemanlarının Veri Türlerini Listelemek

9.4.2.       Veri Türünü Değiştirmek 137

9.4.3.       Veri Çerçevesini Numpy Dizilerine Çevirmek

9.4.4.       Veri Çerçevesi Elemanlarına Erişim 

9.4.5.       Veri Dilimleme              140

9.4.6.       Satır ve Sütun İsimleriyle Erişim    143

9.4.7.       Veri İçeriğinin Değiştirilmesi 144

9.4.8.       Koşullu Erişim               145

9.4.9.       Yeni Sütun Ekleme         146

9.4.10.    Yeni Satır Ekleme          147

9.4.11.    Veri Çerçevesinin Transpozesi148

9.4.12.    Sıralama İşlemi              149

9.4.13.    İstatistiksel Değerler        150

9.4.14.    Gruplama151

9.5.   Özet

9.6.   Alıştırma Soruları

 

Bölüm 10. Pandas Veri Yapıları: Seriler

10.1.     Bölümün Amacı

10.2.     Seriler

10.2.1.    Serilerin Yaratılması

10.2.2.    Serinin Listeye Dönüştürülmesi

10.2.3.    Seri Elemanlarına Erişim

10.2.4.    Seri Etiketleri ile Erişim

10.2.5.    Seri Elemanlarına İndeks Bilgisiyle Erişim

10.2.6.    Seriler Arasında Aritmetik İşlemler 

10.2.7.    Serilerin Sıralanması

10.2.8.    İki Serinin Karşılaştırılması

10.2.9.         Tür Dönüştürme İşlemleri 

10.2.10.     Serilerde Toplanma

10.2.11.     İki Seriyi Birleştirme

10.2.12.     Serinin Boyutları

10.3.     Özet 

10.4.     Alıştırma Soruları

 

Bölüm 11. Karar İfadeleri ve Döngüler

11.1.     Bu Bölümün Amacı               171

11.2.     Karar İşlemi ~ if Deyimi      171

11.2.1.   Eğer Koşul Doğru Değilse ~ else Deyimi   173

11.2.2.   İç içe if Deyimi           175

11.2.3.   if Öbekleri   175

11.3.  Döngüler   177

11.3.1.   Tekrarlı İşlemler ~ for Deyimi    177

11.3.2.   Koşullu Döngüler ~ while Deyimi              183

11.3.3.   Döngülerden Çıkış veya Devam Etme           189

11.4.     Özet

11.5.     Alıştırma Soruları

 

Bölüm 12. Veri Giriş Çıkışları

12.1.     Bölümün Amacı

12.2.     Konsoldan Veri Giriş Çıkışları

12.2.1.    Konsola Yazdırma İşlemi ~ print() Fonksiyonu

12.2.2.    Konsola Çıkışı Biçimlendirme193

12.2.3.    Etkileşimli Veri Girişleri ~ input() Fonksiyonu

12.3.     Dosya Giriş Çıkışları

12.3.1.    Python Dizinleri 

12.3.2.    Dizini Yeniden İsimlendirme

12.3.3.    Bir Dosyayı Yeniden İsimlendirme

12.3.4.    Dosya Açma

12.3.5.    Dosyanın Kapatılması 

12.3.6.    Yeni Dosyaya Kayıt Girme    198

12.3.7.    Varolan Dosyaya Kayıt Ekleme      199

12.3.8.    Dosyadan Okuma            200

12.3.9.    Dosyadan Satır Satır Okuma  201

12.4.     Pandas Veri Dosyaları            201

12.4.1.    CSV Dosyaları               201

12.4.2.  Pandas’ın read_table() Fonksiyonuyla Okuma İşlemi             205

12.4.3.  Excel Dosyaları              207

12.4.4.  HTML Dosyaları            208

12.5.     Özet 

12.6.     Alıştırma Soruları

 

Bölüm 13. Fonksiyonlar

13.1.     Bölümün Amacı     211

13.2.     Kullanıcı Tanımlı Fonksiyonlar     212

13.2.1.         Fonksiyonların Yaratılması  212

13.2.2.         Fonksiyonun Çağrılması212

13.2.3.         Fonksiyon Değişkenleri 214

13.2.4.         Fonksiyonların Çağrılması ~ Kullanılması    215

13.2.5.         Fonksiyon Çalıştıktan Sonra İşlem Sırası     216

13.2.6.         Fonksiyonun Değer Göndermesi  216

13.2.7.         Veri Listesi Göndermek (Döndürmek)         218

13.2.8.         Veri Çerçevesi Göndermek (Döndürmek)     218

13.2.9.         Argümanlar ve Parametreler219

13.2.10.     Fonksiyona Farklı Sayıda Parametre Gönderme  221

13.2.11.     Anahtar Sözcüklü Parametre Geçişleri         222

13.2.12.     Varsayılan Parametre Değeri       222

13.2.13.     Özyineleme Fonksiyonu223

13.3.     Yerleşik Python Fonksiyonları224

13.4.     Özet

13.5.     Alıştırma Soruları

 

Bölüm 14. Python Grafikleri

14.1.     Bölümün Amacı

14.2.     Matplotlib Grafikleri              228

14.3.   Dağılma Grafiği   228

14.3.1.         Çubuk Grafik               231

14.3.2.         Çubuk Grafik Üzerine Etiketler Ekleme

14.3.3.         Gruplandırılmış Çubuk Grafikler 235

14.3.4.         Yığılı Çubuk Grafikler  237

14.3.5.         Çizgi Grafik 239

14.3.6.         Sayı Dizileri için Çizgi Grafiği    241

14.3.7.         Çoklu Çizgi Grafikleri  242

14.3.8.         Histogramlar 244

14.3.9.         Pasta Grafik  245

14.4.     Özet

14.5.     Alıştırma Soruları

 

Bölüm 15. Python ile İstatistiğe Giriş

15.1.     Bölümün Amacı

15.2.     Merkezi Eğilim Ölçüleri

15.2.1.    Ortalama ~ Aritmetik, Geometrik ve Harmonik  250

15.2.2.    Medyan

15.2.3.    Mod    

15.3.     Yayılma Ölçüleri (Yayılma Aralığı, Varyans, Standart Sapma)

15.4.     Olasılık Dağılımları ~ Binom Dağılımı, Normal Dağılım     

15.4.1.   Binom Dağılımı           

15.4.2.   Normal Dağılım           

15.5.     Hipotez testleri      

15.5.1.   Örnek ve Ana Kütle Ortalamaları Farkının Testi

15.5.2.   İki Örnek Arasındaki Farkın Testi

15.6.     Korelasyon Analizleri (Pearson, Spearan, Kendall)

15.7.     Özet

15.8.     Alıştırma Soruları

 

Bölüm 16. Python ile Makine Öğrenmesine Giriş

16.1.     Bölümün Amacı    

16.2.     Makine Öğrenmesi 

16.3.     Denetimli Makine Öğrenmesi 

16.4.     Önişleme

16.4.1.    Eksik Verinin Tamamlanması

16.4.2.    Veri Dönüştürme ve Normalleştirme             

16.4.3.    Verideki Anormalliklerin Tespit Edilmesi      

16.4.4.    Veri Kümesinin Bölünmesi   

16.4.5.    Dengesiz Veri Kümeleri 

16.5.     Sınıflandırma

16.6.     Özet

16.7.     Alıştırma Soruları

Kaynakça

Dizin


Önsöz

Günümüzde kuruluşların çok büyük hacimli veriyle karşı karşıya kaldıkları görülmektedir. Böylece büyük veri adı verilen bir süreç bir dönem ortaya çıktı. Bu gelişmeyle birlikte söz konusu verinin yönetilmesi ve karar alma süreçlerinde kullanılmasında önemli değişiklikler gözlemlendi.

Veri Bilimi; çeşitli araçlar, algoritmalar ve makine öğrenimi ilkeleriyle donatılmıştır. Veri biliminin bir analiz süreci, programlama ve iş becerileri yoluyla yapılandırılmış veya yapılandırılmamış verilerden anlamlı bilgiler veya içgörüler elde etmeyi amaçladığı söylenebilir. Özet olarak matematik, istatistik, bilgisayar bilimi vb. birçok bileşeni içeren bir alandır. 

Veri bilimi doğal olarak bilgisayar yazılımlarıyla oldukça ilgilidir. Bu alanda açık kaynak kodlu yazılımlar önemli bir rol oynamaktadır. Veri biliminde yoğun biçimde kullanılan R ve Python programlama dilleri öne çıkmaktadır. Bu kitap, sözü edilen programlama dilleri arasında yer alan Python üzerinedir. Python programlama dili, kolay öğrenilebilen kapsamlı ve etkili bir yazılım geliştirme ortamı olarak karşımıza çıkmaktadır.

Elinizdeki bu kitap veri biliminin ihtiyaçları gözetilerek ona göre hazırlanmıştır. Özellikle veri bilimine yönelik olarak Python’ın veri yapıları ön plana çıkarılmakta, bunların uygulama alanları üzerinde çok sayıda örnek ile desteklenmektedir. Kitap 16 bölüm olarak tasarlanmıştır. Kitabın son iki bölümü Python ile istatistiğe giriş ve Python ile makine öğrenmesine giriş olarak hazırlanarak veri biliminin temel bileşenleriyle daha yakından ilgilenilmiştir.

Bu kitapta Python programlama dilinin en son 3.10 sürümü tercih edilmiştir. Okuyucunun kitapta yer alan uygulamaları sorunsuz biçimde çalıştırabilmesi için bu sürümün yüklenmesini öneriyoruz. ~ Burak ÖZKAN ve Dr. Yalçın ÖZKAN


Akademik bilimsel ve üniversite kitapları; Papatya Bilim; farkımız, kitaplarımızda...