Jupyter Notebook; içinde çalıştırılabilir kodlar, matematiksel denklemler, grafiksel görselleştirmeler, açıklama metinleri ve linkleri ile çok daha fazlasını içeren belgeler oluşturmanıza ve paylaşmanıza olanak tanıyan tarayıcı(browser) tabanlı bir uygulamadır. 

Bir bilim insanının deneylerini gerçekleştirmek için tüm adımları kaydettiği ve gelecekte yeniden gerçekleştirilebilmesi için sonuçları kaydettiği laboratuvar defterine benzetilebilir. 

Benzer şekilde, bir Jupyter Not Defteri, bir Veri Bilimcisinin veri deneylerini ve sonuçlarını kaydetmesine ve aynı deneyin herhangi birisi tarafından kullanılmasına ve tekrarlanmasına izin verir. 

Bir Jupyter Notebook dosyası, Veri Bilimcilerin açıklayıcı metni, kod bloklarını ve kod çıktısını tek bir dosyada birleştirmesine olanak tanır. Kodu çalıştırdığınızda, not defteri dosyası içinde grafikler ve tablolar dahil olmak üzere çıktıları oluşturur. Üstelik bu not defterini, daha sonra herkesle paylaşılabilecek bir PDF veya HTML dosyasına aktarabilirsiniz. 

Jupyter Notebook’lar, ilk olarak Python Programlama dili için geliştirilmiş “iPython” olarak ortaya çıktı. Julia – Python – R gibi ek dilleri desteklemeye başlayınca, Jupyter olarak yeniden adlandırıldı. Ancak günümüzde, Jupyter notebook java, scala, javascript, ruby gibi diğer birçok dili de destekliyor. 

Jupyter Lab ise, birden çok Jupyter Notebook dosyasına erişirken diğer kod ve veri dosyalarına erişmenizi de sağlayan browser tabanlı bir uygulamadır. 

Jupyter Lab, birden çok notebook, metin düzenleyici, terminal ve özel bileşenlerle esnek, entegre ve genişletilebilir bir şekilde çalışmanıza olanak sağlayarak Jupyter notebook fonksiyonlarını daha da geliştiren bir ortamdır. CSV, JSON, PDF, Vega vb çeşitli dosya formatlarıyla uyumludur. Ayrıca açık kaynaklıdır. 

Jupyter notebook, IBM ve Google Collab gibi bulut (cloud) tabanlı bir hizmet ile de kullanılabilir.  Bulut sunucu üzerinden kullandığınızda yerel makinenize herhangi bir şey yüklemenizi gerektirmeden Jupyter Notebook ortamına erişmenizi sağlarlar. Ayrıca, standart IPython Notebook dosya formatını kullanarak not defterlerini içe ve dışa aktarmanıza izin verirler. Python dilinin yanında diğer dilleri de desteklerler.

Jupyter Notebook Kurulumu 

Jupyter Notebook;

% pip install jupyter 

komutu aracılığıyla terminal üzerinden kurulabilir. Tabii daha önce python ve pip kurulmuş olmalıdır. pip, Python kütüphane ve paketlerini cihazınıza kolayca kurabilmeniz ve geliştirme ortamınıza ekleyebilmeniz için bir paket yöneticisidir.

Eğer bilgisayarınızda herhangi bir kurulum yoksa henüz, internet’te cihazınıza özel kurulum ile ilgili pek çok kaynak bulabilirsiniz. Çoğu makineye standart bir program kurmak gibi kolay kurulur. Benim kullandığım MacBook Pro Apple Chipset’e sahip. Dilerseniz buraya sıfırdan kurulumu kendi cihazım üzerinden anlatayım. Hem M1/2/3 serisi Apple Chipset’li Mac cihazlara kurulum biraz daha zor olabiliyor. Benzer durumdaki arkadaşlar içinde hızlı çözüm sunmuş olalım.

İlk adım muhtemelen daha önce kullanmışsınızdır ama henüz tanışmadıysanız eğer homebrew kurulumu yapmak olacaktır. Bu da Mac için bir nevi paket yöneticidir. Öncelikle xCode komut satırı uygulamasını kuralım;

%  xcode-select --install

Kurulumun sağlıklı bir şekilde tamamlandığını kontrol edelim;

% xcode-select -p

Çıktı olarak;

/Library/Developer/CommandLineTools

şeklinde bir cevap döndürmelidir.

Şimdi homebrew kurulumunu gerçekleştirelim;

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Kurulum sonrası Python versiyon kontrol aracımızı kurabiliriz;

% brew install pyenv

Hangi Python sürümünü kuracağınızdan emin değilseniz, tüm sürümlerini listelemek için;

% pyenv install -l

komutunun çıktısını inceleyebilir ya da python.org adresindeki downloads sayfasından en son sürümünü görebilirsiniz. Sonra da kurulum için;

% pyenv install 3.12.2

komutunu vermeniz yeterlidir. Aşağıdaki komut ile, pyenv’i her yeni terminal penceresi açıldığında otomatik olarak başlatacak şekilde ayarlayabilirsiniz;

% echo 'eval "$(pyenv init -)"' >> ~/.bash_profile 

Python kurulumunuzu işletim sisteminizde genel olarak kullanılacak şekilde ayarlamak için;

% pyenv global 3.12.2

komutunu kullanın.

Şimdi artık Jupyter Notebook’u kurabiliriz;

% brew install jupyter

Jupyter Notebook ile Çalışmak

Jupyter’i çalıştırıp, arayüzüne göz atmak için;

% jupyter notebook

komutunu kullanmanız bir jupyter sunucusu çalıştırmanız için yeterlidir. Sunucu çalıştığında otomatik olarak tarayıcınız içinde Jupyter çalışma ortamını açıp görüntüleyecektir.

Jupyter Notebook

Jupyter Notebooklar ayrıca Anaconda Platformunu bilgisayarınıza indirip kurarak da kullanabilirsiniz. Anaconda, Jupyter ve Jupyterlab’ı içeren popüler dağıtımlardan(distributions) biridir.

Ya da Anaconda’yı tarayıcınız üzerinden online kullanabilirsiniz. Bu durumda yerel bilgisayarınıza herhangi bir kurulum yapmanıza gerek kalmaz.

Anaconda Notebook adresine tıklayarak ulaşacağınız sayfada üyelik oluşturmanız yeterlidir. Giriş yaptığınızda sizi Anaconda bulut çalışma ortamı karşılayacaktır;

Jupyter Notebook ile Çalışmak 1

Dilerseniz hızlıca bir başlangıç kılavuzu tadında Jupyter Notebook çalışma ortamına göz atalım.

Yukarıda, ilk çalıştırma esnasında Jupyter’in bir dosya gezgini ile bizi karşıladığını görmüştünüz. Burada kendinize bir çalışma klasörü oluşturabilirsiniz. Sonra da içine dilerseniz Notebook dosyası, dilerseniz Python dosyası oluşturmakiçin File-New menüsünü kullanabilirsiniz;

Jupyter Notebook ile Çalışmak 2

Notebook seçerek yeni bir Notebook dosyası oluşturmak istediğinizde sizi hangi programlama dili ile çalışacağınızı belirleyecek olan çekirdek(kernel) seçmenizi isteyen soru karşılayacaktır;

Jupyter Notebook ile Çalışmak 3

Biz henüz sadece Python 3 kurulumu yapmıştık, standart olarak bunu seçip devam ediyoruz. Dilerseniz Javascript(örnek olarak Deno‘ya göz atabilirsiniz) gibi diğer diller ile çalışmak için kernel ekleyip buradan seçerek tıpkı Python ile çalıştığınız gibi Notebook dosyaları oluşturup çalışabiliyorsunuz.

Jupyter dosyası içindeki sayfa Hücre olarak adlandırılan yapılardan oluşur.

Jupyter Notebook ile Çalışmak 4

İkon menüsünde bulunan + ikonundan yeni hücreler ekleyebilir, bu menünün sonunda yer alan açılır menüden ise ilgili hücrenin metin hücresi mi, çalıştırılabilir kod mu içereceğini seçebilirsiniz;

Jupyter Notebook ile Çalışmak 5

İlk kod örneği için klişe olarak çıktı yazdırma kodunu girelim;

Jupyter Notebook ile Çalışmak 6

Yukarıda gördüğünüz gibi play ikonu hücre içindeki kodu çalıştırmayı sağlıyor;

Jupyter Notebook ile Çalışmak 7

Ayrıca seçili hücreyi çalıştırmak için Shift+Enter tuş kombinasyonunu kullanabilir ya da uygulama menüsünde yer alan “Run” açılır menüsünden seçili hücreyi, seçili olan birden fazla hücreyi ya da tüm hücreleri çalıştırmasını seçebilirsiniz;

Jupyter Notebook ile Çalışmak 8

Hücrelerin sağında yer alan menüden mevcut hücreyi çoğaltabilir, yukarı ya da aşağı taşıyarak kod çalıştırılma sırasını değiştirebilir, üstüne ya da altına yeni hücre ekleyebilir ya da hücreyi silebilirsiniz;

Jupyter Notebook ile Çalışmak 9

Hücreleri birbiri arasında sol tarafındaki mavi alandan tutup sürükleyerek de sıralayabilirsiniz.

Aynı anda birden çok Jupyter Notebook dosyasında tek tek açıp çalışabilirsiniz ya da uygulama menüsünden View-JupyterLab seçerek JupyterLab’a geçebilirsiniz;

Jupyter Notebook ile Çalışmak 10

JupyterLab’da sizi kolayca yeni Jupyter dosyası oluşturmanızı sağlayacak Launcher penceresi ve sol tarafta dosya gezgini karşılar;

Jupyter Notebook ile Çalışmak 11

Birden fazla Jupyter Notebook dosyasını tablar şeklinde açabilir, hatta aynı anda birden fazla dosya ile çalışmak isterseniz tab başlığına tıklarken sürükleyerek mevcut çalışma alanının altına ya da yanına ekleyebilirsiniz;

Jupyter Notebook ile Çalışmak 12

Jupyter kod çıktılarını direkt notebook içinde görüntülediği için bize çalışırken hatalarımızı adım adım erkenden görme ve düzeltme imkanı da verir. Bu açıdan da Veri Bilimcisi’nin kodlama işlerine esneklik kazandırır.

Jupyter Notebook ile Çalışmak 13

Hata bize matplotlib modülünün kurulu olmadığını söylüyor.

%   brew install python-matplotlib

komutlarıyla kurulumu yapıp tekrar deneyin. Bilgisayarınızda birden fazla Python sürümü olduğu durumlarda Jupyter Notebook’da daha önceki sürümler için “pip” ile kurduğunuz paketler yukarıdaki gibi sorunlara neden olabilir. Bu durumda hızlı çözüm eski sürümü kaldırmak ve ilgili paketi yuklardaki gibi “brew install python-paketadı” komutuyla kurmak olabilir.

İlgili paketleri kurduğunuzda grafik çıktıları da başarıyla görüntüler. Örneğin;

Jupyter Notebook ile Çalışmak 14

Şimdi menüden File-Rename Notebook seçerek çalışma dosyamıza özel bir isim verelim.

Jupyter Notebook ile Çalışmak 15

Son olarak, çalışmamız bittikten sonra JupyterLab’da sol tarafta bulunan “Stop” butonu şeklindeki ikinci ikondan kullandığımız mevcut kaynakları sonlandırıp kapatarak kullandığımız geçici hafızayı(RAM) serbest bırakabiliriz;

Jupyter Notebook ile Çalışmak 16

Jupyter Notebook Metin Biçimlendirme

Daha önce belirttiğimiz gibi Jupyter Notebook dosyalarında biçimlendirilmiş metinlere de yer vererek kod ile ilgili yaptığınız işleri açıklayabiliyordunuz. Bunun için yeni bir hücre ekleyerek ikon menüsünden Code yerine Markdown seçelim;

Jupyter Notebook ile Çalışmak 17

Çift # işareti sonrası boşluk bırakarak eklediğimiz metinler H2 boyutunda başlık olarak biçimlendiriliyor. Tahmin edeceğiniz üzere tek # H1 boyutlu, üç adet # oluşan satırlar çalıştırıldığında H3 boyutlu, dört # H4 boyutlu başlık olarak biçimlendirilir. Dikkat etmeniz gereken nokta bunların Markdown olan hücrelerde bu şekilde çalışmasıdır. Code olan hücrelerde tek # tıpkı Python’da olduğu gibi yorum satırı ekleyeceğiniz anlamına gelir.

Jupyter Notebook ile Çalışmak 18

Tabii biçimlendirmenin çalışması için bu hücreyi de çalıştırmak gerekiyor. Bu nedenle not alma işlemimiz bittikten sonra klavyeden Shift+Enter kombinasyonuna basarak hücremizi çalıştırıyoruz;

Jupyter Notebook ile Çalışmak 19

Bir metni italik hale getirmek için tek yıldız ya da alt çizgi arasına alırız;

Jupyter Notebook ile Çalışmak 20

Bir metni kalın yazmak için çift yıldız ya da çift altçizgi arasında yazarız;

Jupyter Notebook ile Çalışmak 21

Metnin hem kalın hem italik olmasını istiyorsak tahmin edeceğiniz üzere üçer tane * ya da _ kullanırız.

Bir metne bağlantı eklemek istersek; [Bağlantı verilecek metin](Bağlantı Adresi) şeklinde yazarız;

Jupyter Notebook ile Çalışmak 22

Notlarınıza bir resim eklemek için de; ![alt text](Resim Adresi) formatını kullanıyoruz. Dikkat edin eğer en başına ! işaretini koymayı unutursanız bir üstteki formül ile aynı olur ve resim görüntülenmez, sadece bağlantısı eklenir.

Jupyter Notebook ile Çalışmak 23

Bir tablo içinde veri görüntülemek isterseniz bunu kesikli çizgiler “—” ve boru ” | ” karakterlerini kullanarak kabataslak oluşturmanız gerekiyor;

Jupyter Notebook ile Çalışmak 24

Eğer metin içinde listeler görüntülemek istiyorsanız başlangıcında tire(-), çarpı(*) ya da artı(+) kullandığınız satırlar liste elemanı olarak görüntülenirler;

Jupyter Notebook ile Çalışmak 25

Mutlaka farketmişsinizdir; tab tuşu ile içeriye girinti oluşturduğumuz metinler başındaki simgeye bakılmaksızın düzgün biçimde alt listeler olarak görüntüleniyor. Rakam ile sıralı listeler oluşturmak için rakamdan sonra nokta(.) eklemeyi unutmayın. Burada da yine tab tuşu ile girinti oluşturduğumuz metinler alt listeler oluşturuyor ama bu kez hangi sıra numarasını verirseniz ona göre isimlendiriliyor. Yani alt listeyi yukarıdaki gibi 3’den başlatırsanız C olarak karşınıza gelecektir.

Ayrıca; HTML ile web sayfası kodlamayı bilenleri daha mutlu edecek olan özellik ise şudur ki; bu metin hücreleri içinde HTML kodları ile de biçimlendirme yapmanız mümkündür;

Jupyter Notebook ile Çalışmak 26

Jupyter Kernelleri

Juıpyter’de kodunuzu çalıştıracak bir çekirdek(kernel) tanımlamanız gerekir. Bu sayede farklı çekirdekler(kernel) kullanarak Python ile çalıştığınız gibi Javascript ve diğer programlama dilleri ile de Jupyter kullanabilirsiniz. Şimdi bu çekirdeği nasıl tanımlayacağınızı ve çekirdeklerle nasıl çalışılacağını görelim. 

Jupyter Notebook çekirdeği(kernel), bir Notebook dosyasında bulunan kodu yürüten bir hesaplama altyapısıdır. Birçok dil için Jupyter Çekirdekleri mevcuttur. Biz Veri Bilimi ile ilgili olanlardan bazılarını keşfedeceğiz. 

Bir Notebook belgesi açıldığında, ilgili çekirdek otomatik olarak başlatılır, hesaplamayı gerçekleştirir ve sonuçları üretir. 

Ayarlarınıza bağlı olarak, Jupyter ortamınıza diğer programlama dillerini yüklemeniz gerekebilir. Biz tabii ki ilk olarak Python çekirdeğini yükledik. Python çekirdeği, Notebook dosyanız içindeki python hücrelerini çalıştırmanızı sağlar. Bu sayede bir çıktı üretmek için hücrelerde Python komut dosyası çalıştırabilirsiniz. 

Jupyter Notebook’un sağ üst köşesine bakarsanız hangi çekirdeği kullandığını göreceksiniz.

Diğer çekirdekleri çalıştırma seçeneğiniz var. 

Başlatma sayfasındaki çekirdeği seçerek veya sağ üst simgeye tıklayıp açılır menüden çekirdeği seçerek kodunuzu yürütmek için herhangi bir dili kullanabilirsiniz. 

Eğer yerel makinenizde çalışıyorsanız, yeni programlama dilleri çekirdeklerini komut satırı arayüzünüz (CLI) üzerinden manuel olarak yüklemeniz gerekir. 

Jupyter Notebook ile Bulutta Çalışmak

Jupyter not defterleri oluşturmak ve paylaşmak için kullanılan popüler bulut tabanlı ortamlar; JupyterLite ve GoogleCoLaboratory.

JupyterLite, tamamen tarayıcıda çalışan JupyterLab bileşenlerinden oluşturulmuş hafif bir araçtır. Özel bir Jupyter sunucusu gerektirmez. Yalnızca bir web sunucusu gereklidir, bu da JupyerLite’ı statik bir web sitesi olarak dağıtabileceğimiz anlamına gelir.

Ayrıca; Altair, Plotly ve ipywidgets gibi birçok görselleştirme kütüphanesini desteklediği için etkileşimli grafikler ve görselleştirmeler oluşturmak için de kullanabiliriz.

JupyterLite, JupyterLab’ın bir dağıtımı olduğundan, en son sürümün iyileştirmelerini ve özelliklerini içerir. 

JupyterLite’ı başlatmak için hemen sağ taraftaki adının üzerine tıklamanız yeterli! İşte karşınızda; JupyterLite

Jupyter Notebook ile Çalışmak 27

İlk açılış biraz uzun sürebilir. Ardından, Python’u (Pyodide) tıklayın. İşte bir JupyterLite Notebook görünümü;

Jupyter Notebook ile Çalışmak 28

 Python’ın Pyodide çekirdeği, Python paketlerinin bir tarayıcıya yüklenmesine ve çalıştırılmasına izin verir. 

Kullandığınız Jupyter ortamının türüne bağlı olarak farklı çekirdekler görebilir ve kullanabilirsiniz. Fakat bulut tabanlı Jupyter ortamları için Python Pyodide ve Python Pyolite yaygın çekirdeklerdir. 

JupyterLite için varsayılan çekirdek Pyolite’dir. Pyolite, Pyodide tabanlı bir Python çekirdeğidir. Pyolite arka planda çalışır, böylece yoğun hesaplamalar hızlı bir şekilde yürütülebilir. İstenilirse diğer çekirdekler de JupyterLite ile kullanılabilir. 

Google Colaboratory (veya ‘GoogleColab’) tamamen bulutta çalışan ücretsiz bir Jupyter Notebook ortamıdır. Geliştiriciler tarafından oldukça popülerdir ve çok tercih edilmektedir. Sanırım marka değerine güvenden geliyor.  

GoogleColab Jupyter Notebook bir tarayıcıda çalıştırılır ve üzerinde çalıştığınız projeler Google Drive ve GitHub’da depolanır. 

Jupyter Notebook’ları herhangi bir kurulum olmadan yükleyebilir veya paylaşabilirsiniz. Ayrıca projeleri GitHub’dan klonlayabilir ve GoogleColab’da çalıştırabilirsiniz. 

Çoğu makine öğrenimi ve görselleştirme kitaplığı; scikit-learn ve matplotlib gibi önceden yüklenmiştir ve kullanıma hazır olarak gelir. GoogleColab ile, birçok trend olan veri bilimi uygulamasını hızlıca geliştirebilirsiniz.

Yukarıda verdiğim bağlantıya tıkladıysanız karşınıza şöyle bir ekran gelir;

Jupyter Notebook ile Çalışmak 29

 

GoogleColab’ı keşfetmek için “New Notebook” butonunu tıklayın;

Jupyter Notebook ile Çalışmak 30

 Kodunuzu yazın ve ardından kodu yürütmek için Çalıştır simgesini tıklatın. Antrenman yaparken kullanmanız için Google size sol taraftaki Dosya menüsünde bir kaç tane örnek veri seti bırakmış durumda. Sağolasın Google!

Ayrıca Google buraya kodlama işlemlerinizi kolaylaştırmak için bir de Generative AI yani yapay zeka botu eklemiş. Bizim için her şeyi düşünmüş ama tabii ki bu sınırlı bir süre için ve hesabımızı Colab Pro’ya yükseltmemiz için ağzımıza bir parmak bal çalmaktan ibaret. Aylık ödemeleri 166 liradan başlayıp 827 liraya doğru ilerliyor. Tabii şu anki kur ile. Yarın sabah ne olur bilinmez 🙂 Ama genel olarak giriş paketi başlangıç için yeterli olacağından fiyatlar makul diyebiliriz. Ya da bu satırları okuduğunuza göre “yapay zekaya gerek yok, biz burada nasıl kodlayacağımızı öğeniyoruz zaten” diyebilirsiniz. ????

Daha fazla Kod veya Metin hücresi eklemek için yukarıdaki + Code veya + Text butonlarını tıklamanız gerekir. 

Burada, metin hücreleri zengin metin yazmak için kullanılır, yani metin biçimlendirme işini sizin için kolaylaştırır veya bu hücreleri Markdown hücreleri olarak ayarlayabilirsiniz.

Jupyter Notebook ile Çalışmak 31

Online Notebook kaynakları;