top of page
Gambar penulisCornellius Yudha Wijaya

Tingkatkan Jupyter Notebook Environment Anda

Diperbarui: 2 Feb

Jupyter Notebook adalah bagian yang tak terpisahkan dari saya sebagai seorang Data Scientist. Jupyter Notebook mampu menguji kode saya dalam sel yang berbeda, menampilkan figur saya secara instan, dan bahkan menulis penjelasan yang diperlukan dalam bentuk markdown; sebuah pengalaman yang tidak tersedia di IDE lain (setidaknya sejauh yang saya tahu).


Meskipun saya mengatakan itu, saya menyadari bahwa Jupyter Notebook lebih merupakan alat untuk eksplorasi dan pengujian daripada untuk produksi. Saya juga tahu bahwa dalam bentuk defaultnya, penggunaannya bisa menyakitkan, terutama bagi orang yang berasal dari IDE lain. Namun demikian, saya ingin menunjukkan beberapa fitur yang saya sukai dari Jupyter Notebook untuk meningkatkan pengalaman kita dalam menggunakan Jupyter Notebook. Catatan kecil, sebagian besar ekstensi di sini hanya berfungsi dengan baik dengan asumsi bahasa yang Anda gunakan untuk jupyter notebook Anda adalah Python.

Markdown and LaTeX


Bagi mereka yang tidak tahu apa itu Markdown, ini adalah bahasa yang menambahkan elemen pemformatan ke dokumen teks biasa. Markdown memberi Anda kemampuan untuk memanipulasi teks biasa Anda menjadi teks yang jauh lebih menarik (misalnya menyematkan tautan, gambar, atau bahkan video).


Untuk menggunakan markdown, kita perlu mengubah sel kita ke mode markdown. Kita hanya perlu memilih pilihan Markdown dari menu drop-down. Jika Anda ingin mempelajari semua perintah yang digunakan dalam format markdown, Anda dapat mempelajarinya di sini.



Yang saya sukai tentang Markdown di Jupyter Notebook bukanlah bagian pemformatannya, tetapi bagaimana sebenarnya Markdown bisa mengimplementasikan LaTeX di sel mereka. LaTeX juga merupakan bentuk bahasa pemformatan teks biasa. Secara khusus, LaTeX sering digunakan untuk ekspresi matematika yang kompleks.


Sama seperti Markdown, LaTeX memiliki aturannya sendiri. Jika Anda ingin mempelajari lebih lanjut tentang itu, ada panduan sumber terbuka untuk dokumentasi LaTeX di sini.


Programming Language Extension


Ketika kita menginstal Jupyter Notebook melalui Anaconda, kita hanya akan menggunakan Python sebagai bahasa kerja kita. Hal ini menciptakan asumsi bahwa Jupyter Notebook hanya dapat bekerja dengan bahasa Python dan kita harus menggunakan IDE lain jika kita ingin bekerja dengan bahasa lain seperti R atau Julia. Ini sama sekali tidak benar; kita dapat mengimplementasikan bahasa lain dalam lingkungan Jupyter kita.


Sebagai contoh, kita dapat menanamkan ekstensi tambahan untuk Jupyter Notebook kita agar dapat bekerja dengan bahasa pemrograman R atau Julia.


1. R Notebook

Untuk memiliki R Notebook di Jupyter Notebook kita, kita perlu mengikuti langkah-langkah berikut:

  • Instal R; Kita perlu memiliki bahasa pemrograman R sebelum kita dapat mengatur R di lingkungan Jupyter Notebook kita. Anda dapat mengunduhnya di sini.

  • Instal IRkernel; IRkernel adalah kernel Jupyter yang memproses bahasa R di Jupyter Notebook. Anda dapat menginstal IRkernel melalui konsol R dengan mengetikkan:

 install.packages('IRkernel'). 
  • Aktifkan IRKernel; Untuk Jupyter agar dapat melihat IRkernel yang baru terinstal, kita perlu mengaktifkannya melalui konsol R dengan mengetikkan:

IRkernel::installspec(user = FALSE)
  • Sekarang kita dapat menggunakan bahasa pemrograman R di Jupyter Notebook kita dengan memilih R saat kita membuat notebook baru.


2. Julia Notebook


Bagaimana dengan Julia? Ya, kita juga bisa mengatur bahasa Julia di Jupyter Notebook kita. Kita hanya perlu mengikuti langkah-langkah serupa seperti di atas.


  • Instal Julia; Sama seperti R, kita perlu mengunduh bahasa Julia sebagai langkah pertama kita. Anda dapat mengunduh Julia di sini.

  • Instal IJulia; IJulia adalah setara dengan IRkernel di R. Kita menginstal IJulia dengan mengetikkan baris berikut di baris perintah Julia:

using Pkg
Pkg.add("IJulia")

Dengan kode diatas, kita dapat mempunyai Julia di Notebook kita.

Jupyter Notebook Extension

Jupyter Notebook berisi add-on atau ekstensi untuk meningkatkan produktivitas kita. Di sini saya akan merangkum bagian pemasangan dan menunjukkan beberapa ekstensi favorit saya.


Untuk mengaktifkan Ekstensi Jupyter Notebook untuk lingkungan Python, kita hanya perlu menjalankan perintah berikut di terminal:


pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

Membuka tab Nbextensions akan menampilkan pilihan ekstensi yang bagus seperti yang ditunjukkan di bawah ini.



Ada banyak pilihan ekstensi yang kegunaannya tergantung pada jenis pekerjaan yang kita lakukan, tetapi saya akan menunjukkan beberapa yang sering saya gunakan.


1. Execute Time

Saya merasa ekstensi ini berguna karena saya sering menguji berbagai kombinasi kode untuk menemukan yang paling cepat dijalankan. Ekstensi ini akan muncul setiap kali kita menjalankan sel saat ini dan akan tetap ada sampai kita menjalankan sel itu sekali lagi atau mereset notebook. Mari saya tunjukkan dengan contoh di bawah ini.


Ketika kita telah selesai menjalankan kode, ekstensi ini akan memberikan kita waktu eksekusi kode bersama dengan waktu penyelesaiannya.


2. Variable Inspector

Salah satu alasan mengapa orang tidak suka menggunakan Jupyter Notebook adalah karena tidak adanya pemeriksa variabel yang disediakan di IDE lain. Untuk kasus tersebut, kita memiliki ekstensi lain yang disebut Variable Inspector.



Sesuai dengan namanya, ekstensi ini akan menciptakan sebuah instansi tambahan untuk menampilkan semua variabel yang ada dalam lingkungan Jupyter Notebook kita.


3. Code Prettify

Dengan satu tekan tombol, ekstensi ini akan menyusun ulang kode kita. Saya sering menggunakan ekstensi ini setelah proses pemrograman yang panjang untuk membuat baris kode yang lebih mudah dibaca dan lebih rapi.


Ekstensi ini mungkin tidak selalu bekerja sesuai yang kita inginkan. Misalnya, jika kita sudah memiliki baris yang rapi, ekstensi ini tidak akan mengubah baris kita sama sekali.


4. Scratchpad

Ekstensi ini akan menciptakan lingkungan mandiri seperti kertas coretan di buku kita. Scratchpad adalah ekstensi yang sangat berguna jika kita membutuhkan tempat untuk eksperimen kode tetapi tidak ingin mengganggu lingkungan Jupyter saat ini.

Supporting Packages


Banyak modul telah dikembangkan untuk menciptakan cara yang lebih mulus dan interaktif untuk bekerja dengan data kita di lingkungan Jupyter. Seiring waktu, saya yakin daftar modul ini akan berkembang lebih banyak lagi, tetapi di sini saya akan menunjukkan beberapa paket yang saya gunakan setiap hari.


1. Progress Bar

Sebagian besar waktu, kita memerlukan banyak waktu untuk proses looping tetapi kita bahkan tidak tahu kapan itu akan selesai. Lebih dari itu, kita ingin tahu apakah proses looping kita berjalan dengan baik atau tidak.


Dalam kasus itu, kita dapat memiliki progress bar yang disediakan oleh modul tqdm.

pip install tqdm

Berikut adalah contoh kode tentang cara menambahkan progress bar di Jupyter Notebook kita.

#Import the module
from tqdm import tqdm

#Creating the list for looping purposes
my_list = list(range(10000000))

#Calling the progress bar in the jupyter noteboook
with tqdm(total=len(my_list)) as pbar:
    for x in my_list:
        pbar.update(1) #use this code to move our progress bar

Kita memanggil progress bar dengan memanggil tqdm dengan parameter total yang menerima jumlah iterasi yang terjadi.


Untuk memindahkan progress bar, pada setiap iterasi yang terjadi kita perlu memperbarui progress bar dengan menggunakan metode pbar.update() yang menerima angka penambahan (Biasanya akan menjadi 1).


2. Widgets


Saat kita bekerja untuk mengeksplorasi data kita, terkadang akan merepotkan untuk terus mengedit kode kita hanya untuk menampilkan plot tertentu. Hal ini tentunya akan menghambat produktivitas kita dan bahkan membuang-buang waktu kita yang berharga.




Di sini saya akan menunjukkan contoh kontrol interaktif dengan tujuan untuk mengubah input kita tanpa perlu mengedit kode tambahan dengan menggunakan modul ipywidgets.


Pertama, kita menginstal modul kita dengan menggunakan pip atau conda seperti biasa.

pip install ipywidgets

Kemudian kita mengaktifkan modul ipywidget kita dengan mengetikkan kode berikut ini di command prompt kita:

jupyter nbextension enable --py widgetsnbextension

Dengan ekstensi tersebut, kita sekarang dapat mengaktifkan kontrol interaktif di Jupyter Notebook.

#Import all the important module
import matplotlib.pyplot as plt
import seaborn as sns

from ipywidgets import interact
#load the example dataset
titanic = sns.load_dataset('titanic')

Misalkan saya tertarik untuk melihat rata-rata tarif yang dikelompokkan berdasarkan setiap kelompok kategoris dalam dataset. Kita bisa menyaring data satu per satu tetapi itu akan memakan banyak waktu dan mengurangi produktivitas kita. Untuk alasan itu, kita bisa menggunakan kontrol interaktif.


@interact
def create_fare_plot(col = titanic.drop(['fare', 'age'], axis =1).columns):
    sns.barplot(data = titanic, x = col, y ='fare')
    plt.title(f'Mean Bar Plot of the Fare grouped by the {col}')

Kita menginisiasi interaksi dengan baris kode '@interact', diikuti oleh pernyataan def untuk membuat kontrol interaktif yang kita inginkan. Di sini widget interaktif akan memberikan kita dropdown dengan opsi dari apa yang kita masukkan dalam parameter def.


Kesimpulan

Di atas adalah beberapa contoh untuk meningkatkan pengalaman kita di Jupyter Notebook. Saya tahu bahwa Jupyter Notebook tidak akan pernah menggantikan IDE seperti Visual Studio Code untuk tujuan produksi, tetapi saya mencoba menunjukkan bagaimana meningkatkan lingkungan Jupyter untuk tujuan kerja Data Scientist.

45 tampilan0 komentar

Postingan Terkait

Lihat Semua

Comments


bottom of page