İçindekiler

Jupyter Notebook Nedir? Nasıl Kullanılır? Veri Bilimi!

Giriş

Merhaba, ileride yazacağım “Siber Güvenlik’te Makine Öğrenmesi/Derin Öğrenme, İstatistik, Veri Bilimi, Veri Analizi, vb.” temalı yazılarım Jupyter Notebook kullanacağım için bu yazıda ayrıntılıca ele aldım. Jupyter Notebook örnek kullanımları, ileride ilgili blog yazılarımda bulunacak.

  • Jupyter Notebook için, ileride yapacağım uygulamalar ve yazacağım yazılar için de gerekli olan Anaconda Python/R Dağıtımı yazımı okumanızı tavsiye ederim.

Jupyter Notebook

Jupyter Notebook, bir web tarayıcısı üzerinden notebook belgesi formatındaki kodları düzenlemeyi ve çalıştırmayı sağlayan bir sunucu-istemci uygulamasıdır. İlk çıktığında isim olarak IPython Notebook diye biliniyordu. Başlangıçta sadece Python’ı desteklesede zamanla gelişerek Julia, Octave, R, Haskel, Ruby gibi dilleri de desteklemeye başladı (tam liste için tıklayınız. Özellikle matematiksel ifadeleri LaTeX komutları ile yazabilirsiniz.

Geliştirme ortamı olarak Jupyter Notebook, sanki not alır gibi kod yazmanızı sağlar. Kaldığınız yerden devam ettirme, programı parçalara bölme, istediğiniz sırada/adımda parçaları çalıştırma ve istediğiniz formatta çıktı alabilme gibi özellikleri vardır. Bu nedenle veri bilimi, makine öğrenmesi ve derin öğrenme konularında çok kullanılır. Diğer insanların yüklediği örnek çalışmalara buradan bakabilirsiniz. Jupyter Notebook ile kitap bile yazan var 🙂

Jupyter Notebook, internet erişimi gerektirmeden çalışabilir, uzaktaki bir sunucuya kurulabilir ve internet üzerinden erişilebilir. Jupyter notebook belgelerini görüntülemeye, düzenlemeye ve çalıştırmaya ek olarak, yerel dosyaları gösteren ve notebook belgelerini açmaya veya notebook’un çekirdeğini kapatmaya izin veren bir “Dashboard” (Notebook Kontrol Paneli) içerir.

Notebook Çekirdeği (Kernel)

Bir notebook çekirdeği, bir notebook belgesindeki kodu çalıştıran bir sayısal motordur. Bu yazılan dokümanda bahsedilen çekirdek, python kodunu çalıştırır. Birçok yazılım dili için çekirdekler vardır (tam liste).

Bir notebook belgesini açtığınızda, ilişkili çekirdek otomatik olarak başlatılır. Notebook çalıştırıldığında (kod hücresı bazında veya tüm kod), çekirdek hesaplamayı yapar ve sonuçları üretir. Hesaplama türüne bağlı olarak, çekirdek önemli CPU ve RAM tüketebilir. Siz, çalışan çekirdeği kapatana kadar RAM’de yer kullanıdığını unutmayın.

Notebook Kontrol Paneli (Notebook Dashboard)

Notebook Dashboard, Jupyter Notebook uygulamasını başlattığınızda karşınıza ilk çıkan paneldir. Notebook Dashboard temel olarak notebook belgelerini açmak ve çalışan çekirdekleri yönetmek (görselleştirme ve kapatma) için kullanılır. Notebook paneli, dosya yöneticisine benzer; klasörlerde gezinme, dosyaları yeniden adlandırma ve silme gibi diğer birçok özelliğe sahiptir.

jupyter notebook dashboard
Resmi büyütmek için üzerine tıklayınız.

Jupyter Notebook Kurulumu

Jupyter, Anaconda’nın içerisinde de varsayılan olarak gelmektedir. Boş bir anaconda ortamı oluşturduysanız, aşağıdaki komut ile ortamınıza kurabilirsiniz. Ben bir önceki yazıda oluşturduğum qlearning isimli anaconda ortamına kuruyorum. Anaconda nedir? Nasıl kullanılır? Okumak için tıklayınız. conda install jupyter -n qlearning

conda install jupyter notebook

Jupyter Notebook Nasıl Kullanılır?

Jupyter Notebook’u Çalıştırmak ve Dashboard’a Erişmek

Anaconda ortamı aktifken jupyter notebook komutu ile kolayca çalıştırabilirsiniz.

İpucu
Çalışacağınız veya çalıştıracağınız uygulamanın dizinindeyken jupyter notebook’u başlatmanız, kolayca notebook belgelerine erişmenizi, düzenlemenizi ve çalıştırmanızı sağlar.
run jupyter notebook
Resmi büyütmek için üzerine tıklayınız.
jupyter notebook komutu ile çalıştırdıktan sonra otomatik olarak Notebook Dashboard, varsayılan web tarayıcısı üzerinden açılır. Açılmazsa veya tarayıcıyı kapatmışsanız, yukarıdaki ekran görüntüsünde görüleceği gibi, Jupyter Notebook’u çalıştırdığınız terminalde yazan linki tarayıcınız üzerinden açarak Dashboard’a erişebilirsiniz.

Bilgi
  • Jupyter Notebook’un birçok farklı kopyasını çalıştırabilirsiniz, sadece çalıştığı port değişecektir.
  • Çalışan bir Jupyter Notebook uygulamasında birden çok notebook belgesi açabildiğiniz ve çalıştırabildiğiniz için birden çok Jupyter Notebook uygulamasını çalıştırmanız önerilmez.

Yeni Notebook Belgesi Oluşturmak

Yeni bir not defteri oluşturmak için listenin en üstündeki “New” düğmesine tıklayın ve açılan listeden bir çekirdek seçin (aşağıda görüldüğü gibi, Python 2/3 …). Yüklü olan çekirdekler listelenmektedir. Aşağıdaki ekran görüntüsündeki çekirdeklerin bir kısmı kurulum durumuna göre sizde seçenek olarak bulunmayabilir. (Anaconda’da ortam oluştururken belirtilen veya varsayılan Python versiyonunuza göre Python çekirdeği otomatik oluşturulur. Siz de ayrıca farklı çekirdek ve versiyonları kurabilirsiniz.)

jupyter notebook create new
Resmi büyütmek için üzerine tıklayınız.

Notebook Belgesi Açmak ve Çalıştırmak

Çalıştırmak istediğiniz notebook belgesini seçip açabilir veya bir çalışma indirebilir (*.ipynp) ve onun üzerinde çalışabilirsiniz.

  1. Jupyter Notebook Uygulamasını başlatın (önceki bölüme bakın).
  2. Notebook Dashboard’da belgeyi bulun, belgenin üzerine tıkladığınızda yeni bir tarayıcı sekmesinde açılır.
  3. Jupyter Notebook kullanıcı arayüzüne genel bakış için “Help -> User Interface Tour” butonuna tıklayın. (Notebook belgesinde kod düzenlemeyi, belge adı düzenlemeyi, kernel işlemlerini, farklı modları vb. işinize yarayacak şeyleri kısa kısa açıklar, kesinlikle buraya tıklayın, atlamayın.)
    jupyter notebook user interface tour
    Resmi büyütmek için üzerine tıklayınız.
  4. Shift + enter tuşlarına basarak notebook belgesindeki hücreleri adım adım (her seferinde bir hücre) çalıştırabilirsiniz.
  5. Tüm notebook belgesini tek bir adımda menüden Cell -> Run All butonuna tıklayarak çalıştırabilirsiniz.
  6. Çekirdeği yeniden başlatmak için menüden Kernel -> Restart butonuna tıklayın. Bu, sıfırdan bir hesaplamaya başlamak için yararlı olabilir (örn: değişkenlerin değerleri hafızadan silinir, açık dosyalar kapatılır, vb.).

Notebook belgesi açtığınızda, bir kod hücresinde işlem yaparken hangi modda olduğunuza bağlı olarak farklı şeyler yapabilirsiniz. İki mod vardır: düzenleme modu ve komut modu.

Düzenleme Modu

jupyter notebook cell edit mode
Bir hücrede düzenleme modu aktif olduğunda, yeşil bir dikdörtgen içerisinde gösterilir. Bu moddayken, içerisini istediğiniz gibi düzenleyebilirsiniz. Düzenleme moduna, hücrenin üzerine fare ile tıklayarak yada hücre komut modundayken enter tuşuna basarak girebilirsiniz.

Komut Modu

jupyter notebook cell command mode
Bir hücrede komut modu aktif olduğunda, mavi bir dikdörtgen içerisinde gösterilir. Komut modundayken, notebook belgesini bir bütün olarak düzenleyebilirsiniz ancak hücrelere yazamazsınız. En önemlisi, komut modunda notebook ve hücre işlemlerini verimli bir şekilde gerçekleştirmenizi sağlayan birçok kısayola erişebilirsiniz. Örneğin komut modunda “c” tuşuna basarsanız geçerli hücre kopyalanır.

Notebook Belgesini Kapatmak (Kernel shutdown)

Uyarı
Bir notebook belgesi açıldığında, “sayısal motor” (kernel) otomatik olarak çalıştırılır. Belgenin çalıştığı tarayıcı sekmesini kapatmak, belgenin çekirdeğini kapatmaz. Kapatılıncaya kadar çekirdek çalışmaya devam eder ve ona ayrılan RAM alanı serbest kalmadığı için başka uygulamalar tarafından kullanılamaz. Kullanmadığınız notebook belgesini tamamıyla kapatın.
jupyter notebook shutdown kernel
Resmi büyütmek için üzerine tıklayınız.

  • Bir çekirdeği kapatmak için ilgili notebook belgesine gidin ve menüden “File -> Close and Halt” tıklayın. Alternatif olarak, Notebook Dashboard, çalışan tüm notebook belgelerini panel üzerinden kapatmaya izin verir. Çalışan belgeler yeşil olarak gösterilir ve sağ tarafında “Running” olarak belirtilir.
    jupyter notebook shutdown kernel on dashboard
    Resmi büyütmek için üzerine tıklayınız.
  • Birden fazla belge seçip kapatabilirsiniz. (Turuncu buton: kapat, kırmızı buton: sil)

Jupyter Notebook Uygulamasını Kapatmak

Jupyter Notebook uygulamasını kapattığınızda otomatik olarak tüm çekirdekler de kapanır. Kapatmak için kontrol panelinde sağ üstteki “Quit” butonuna basabilirsiniz.

jupyter notebook exit quit application
Resmi büyütmek için üzerine tıklayınız.

Bir diğer yöntem ise uygulamayı açtığınız terminaldeyken Ctrl + c kısayolu ile veya direkt olarak terminali kapatarak uygulamadan çıkış yapabilirsiniz.

close jupyter notebook
Resmi büyütmek için üzerine tıklayınız.

Örnek

Örnek: Ctrl + c. Ardından “y” diyerek çıkış yapabilirsiniz.

resume jupyter notebook
  • 5 saniye içerisinde “y” veya “n” demezseniz çalışmaya devam eder.

Kullanım İpuçları

  1. İstediğiniz hücreyi istediğiniz sırada çalıştırabilir, bazı hücreleri hiç çalıştırmayabilirsiniz.
  2. Her fonksiyonu farklı hücrelere yazınız.
  3. İpucu 1 sayesinde, eğer bir fonksiyonu değiştirdiyseniz, programın geri kalanını baştan çalıştırmanıza gerek kalmaz. Değiştirdiğiniz fonksiyonun hücresini çalıştırın ve programda en son nerede kaldıysanız o hücreden devam edin.
  4. Projenize ekleyeceğiniz paketleri (import <pkg_name>) kategorize edip farklı hücrelerde ekleyin.
  5. Projenize ekleyeceğiniz veya projenizde okuyacağınız dosyaları farklı hücrelerde ekleyin. Bu sayede eğer bir dosya güncellenmişse, sadece o hücreyi çalıştırarak gerekli değişiklik geçerli çekirdeğe uygulanabilir. Bu sayede diğer dosyaları tekrar eklemenize, aynı kodları tekrar çalıştırmanıza gerek kalmaz. (Büyük boyutlu verilerle uğraşıyorsanız size çok zaman kazandırır.)
  6. Metod, kütüphane ve değişkenlerin başına ? eki koyup, kod hücresi çalıştırılarak dokümantasyona erişebilirsiniz. Örnek: ?np.sum
    jupyter notebook documentation
    Resmi büyütmek için üzerine tıklayınız.
  7. Notebook belgesi hücrelerinde shell komutları çalıştırabilirsiniz. Örnek:
    jupyter notebook execute shell command
  8. tab tuşu ile kod tamamlama özelliği bulunmaktadır. Ayrıca tab‘a basınca, kullanılabilecek komutlar listelenmekte. Örnek:
    jupyter notebook tab completion

Önemli Klavye Kısayolları

Tüm klavye kısayolları için: Help->Keyboard Shortcuts

  1. Enter: Düzenleme modu
  2. Esc: Komut modu
  3. Notebook belgesini kaydetmek: s
  4. Hücre tipini değiştirmek:
    • y : kod modu
    • m : markdown
    • r : raw
    • 1-6 : heading 1-6
  5. Yeni hücre oluşturmak:
    • a : bir yukarıda hücre oluşturur
    • b : bir aşağıda hücre oluşturur
  6. Hücre düzenleme:
    • x : hücreyi kes
    • c : hücreyi kopyala
    • v : kopyalanan hücreyi komut modunun bulunduğu hücrenin altına yapıştır.
    • d : seçili hücreleri sil
    • z : silmeyi geri al
  7. Çekirdek işlemleri
    • i : Çekirdeği yarıda kes/durdur
    • 0 : çekirdeği yeniden dialog ile başlat
  • İngilizce bilenler diğer birçok önemli ipuçlarını bu adresten okuyabilirsiniz, kaliteli bir kaynaktır.

Kaynakça

  1. https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html
  2. https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/install.html
  3. https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html
  4. https://github.com/jupyter/notebook/blob/master/docs/source/examples/Notebook/Notebook%20Basics.ipynb
  5. https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/