Jupyter Notebook – Công Cụ Python Cơ Bản Cho Beginner

Khi làm quen với ngôn ngữ Python chắc chắn bạn sẽ gặp công cụ Jupyter, đây là một công cụ quen thuộc với cả người mới học và các kỹ sư lập trình, data science. Vậy Jupyter là gì? tại sao Jupyter notebook là một công cụ không thể thiếu cho lập trình Python.

Jupyter là gì?

Jupyter là một nền tảng tính toán khoa học mã nguồn mở, với khả năng nổi bật cho phép tương tác trực tiếp với từng dòng code (interactive), hỗ trợ hơn 40 ngôn ngữ lập trình, trong đó tập trung vào 3 ngôn ngữ là Julia, Python và R,  cái tên Jupyter bắt nguồn từ cách chơi chữ I Python, You R, We Julia, hay một công thức ngắn gọn Jupyter = Julia + Python + R. Bên cạnh đó, Jupyter cũng là một công cụ hoàn toàn miễn phí, được tạo ra với mục đích nhắm đến khoa học dữ liệu và giáo dục, giúp mọi người cùng học lập trình dễ dàng hơn (cụ thể ở đây là Python). Jupyter có tính tương tác nên có thể sử dụng làm môi trường chạy thử và giảng dạy.

Jupyter Notebook là gì?

Trước đây là nó có tên là IPython Notebook, đến năm 2014 lại đổi tên thành Jupyter Notebook. Jupyter hỗ trợ rất nhiều các kernel cho các ngôn ngữ khác nhau, khoảng trên 40 ngôn ngữ trong đó có Python. Việc đổi tên từ IPython sang Jupyter cũng là vì mục đích hỗ trợ đa ngôn ngữ.

Phần cơ bản của nó là một ứng dụng chạy trên nền web cho phép chạy Interactive Python (hay IPython), bạn có thể đưa cả code Python và các thành phần văn bản phức tạp như hình ảnh, công thức, video, biểu thức… vào trong cùng một file giúp cho việc trình bày trở lên dễ hiểu, giống như một file trình chiếu nhưng lại có thể thực hiện chạy code tương tác trên đó, cốt lõi của việc này chính là Markdown. Các file “notebook” này có thể được chia sẻ với mọi người và có thể thực hiện lại các công đoạn một cách nhanh chóng và chính xác như những gì bạn đã làm trong quá trình tạo ra file.

Cài đặt Jupyter Notebook

Mình sẽ hướng dẫn những bạn setup Jupyter Notebook trong hệ quản lý Windows, việc tiên phong là bạn cần phải chắc như đinh rằng mình đã thiết lập Python trong máy .
Bạn hoàn toàn có thể kiểm tra bằng cách vào Terminal hoặc là Command Prompt và nhập lệnh sau :

python --version

Nếu hiện ra phiên bản Python đang dùng, vậy là bạn đã setup rồi. Nếu không, hãy vào Microsoft Store hoặc trang gốc của Python để tải về và thiết lập .

Tiếp theo, để cài đặt Jupyter Notebook, bạn chỉ cần dùng lệnh pip đơn giản sau

pip install jupyter

Cài đặt xong sẽ có thông tin tựa như như thế này

Collecting jupyter
  Using cached jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)
Requirement already satisfied: qtconsole in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter) (4.7.6)
Requirement already satisfied: jupyter-console in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter) (6.2.0)
Collecting notebook
  Using cached notebook-6.1.3-py3-none-any.whl (9.4 MB)
Requirement already satisfied: nbconvert in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter) (5.6.1)
Requirement already satisfied: ipywidgets in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter) (7.5.1)
Requirement already satisfied: ipykernel in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter) (5.3.4)
Requirement already satisfied: pyzmq>=17.1 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from qtconsole->jupyter) (19.0.2)
Requirement already satisfied: traitlets in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from qtconsole->jupyter) (5.0.0)
Requirement already satisfied: jupyter-client>=4.1 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from qtconsole->jupyter) (6.1.7)
Requirement already satisfied: jupyter-core in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from qtconsole->jupyter) (4.6.3)
Requirement already satisfied: pygments in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from qtconsole->jupyter) (2.6.1)
Requirement already satisfied: ipython-genutils in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from qtconsole->jupyter) (0.2.0)
Requirement already satisfied: qtpy in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from qtconsole->jupyter) (1.9.0)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter-console->jupyter) (3.0.7)
Requirement already satisfied: ipython in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter-console->jupyter) (7.18.1)
Requirement already satisfied: nbformat in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from notebook->jupyter) (5.0.7)
Requirement already satisfied: Send2Trash in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from notebook->jupyter) (1.5.0)
Requirement already satisfied: terminado>=0.8.3 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from notebook->jupyter) (0.8.3)
Requirement already satisfied: argon2-cffi in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from notebook->jupyter) (20.1.0)
Requirement already satisfied: tornado>=5.0 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from notebook->jupyter) (6.0.4)
Requirement already satisfied: prometheus-client in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from notebook->jupyter) (0.8.0)
Requirement already satisfied: jinja2 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from notebook->jupyter) (2.11.2)
Requirement already satisfied: mistune<2,>=0.8.1 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from nbconvert->jupyter) (0.8.4)
Requirement already satisfied: pandocfilters>=1.4.1 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from nbconvert->jupyter) (1.4.2)
Requirement already satisfied: bleach in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from nbconvert->jupyter) (3.1.5)
Requirement already satisfied: defusedxml in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from nbconvert->jupyter) (0.6.0)
Requirement already satisfied: testpath in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from nbconvert->jupyter) (0.4.4)
Requirement already satisfied: entrypoints>=0.2.2 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from nbconvert->jupyter) (0.3)
Requirement already satisfied: widgetsnbextension~=3.5.0 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from ipywidgets->jupyter) (3.5.1)
Requirement already satisfied: python-dateutil>=2.1 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter-client>=4.1->qtconsole->jupyter) (2.8.1)
Requirement already satisfied: pywin32>=1.0; sys_platform == "win32" in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jupyter-core->qtconsole->jupyter) (228)
Requirement already satisfied: wcwidth in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->jupyter-console->jupyter) (0.2.5)
Requirement already satisfied: jedi>=0.10 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from ipython->jupyter-console->jupyter) (0.17.2)
Requirement already satisfied: pickleshare in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from ipython->jupyter-console->jupyter) (0.7.5)
Requirement already satisfied: backcall in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from ipython->jupyter-console->jupyter) (0.2.0)
Requirement already satisfied: decorator in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from ipython->jupyter-console->jupyter) (4.4.2)
Requirement already satisfied: colorama; sys_platform == "win32" in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from ipython->jupyter-console->jupyter) (0.4.3)
Requirement already satisfied: setuptools>=18.5 in c:\program files\windowsapps\pythonsoftwarefoundation.python.3.8_3.8.1520.0_x64__qbz5n2kfra8p0\lib\site-packages (from ipython->jupyter-console->jupyter) (47.1.0)
Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from nbformat->notebook->jupyter) (3.2.0)
Requirement already satisfied: pywinpty>=0.5; os_name == "nt" in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from terminado>=0.8.3->notebook->jupyter) (0.5.7)
Requirement already satisfied: cffi>=1.0.0 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from argon2-cffi->notebook->jupyter) (1.14.2)
Requirement already satisfied: six in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from argon2-cffi->notebook->jupyter) (1.15.0)
Requirement already satisfied: MarkupSafe>=0.23 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jinja2->notebook->jupyter) (1.1.1)
Requirement already satisfied: packaging in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from bleach->nbconvert->jupyter) (20.4)
Requirement already satisfied: webencodings in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from bleach->nbconvert->jupyter) (0.5.1)
Requirement already satisfied: parso<0.8.0,>=0.7.0 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jedi>=0.10->ipython->jupyter-console->jupyter) (0.7.1)
Requirement already satisfied: pyrsistent>=0.14.0 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->notebook->jupyter) (0.16.0)
Requirement already satisfied: attrs>=17.4.0 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from jsonschema!=2.5.0,>=2.4->nbformat->notebook->jupyter) (20.1.0)
Requirement already satisfied: pycparser in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from cffi>=1.0.0->argon2-cffi->notebook->jupyter) (2.20)
Requirement already satisfied: pyparsing>=2.0.2 in c:\users\admin\appdata\local\packages\pythonsoftwarefoundation.python.3.8_qbz5n2kfra8p0\localcache\local-packages\python38\site-packages (from packaging->bleach->nbconvert->jupyter) (2.4.7)
Installing collected packages: notebook, jupyter
Successfully installed jupyter-1.0.0 notebook-6.1.3

Dùng Jupyter Notebook như thế nào?

Sau khi setup xong Jupyter Notebook trong những bước ở trên, tất cả chúng ta hoàn toàn có thể khởi đầu chạy Jupyter bằng câu lệnh trong Terminal hoặc Command Prompt :

jupyter notebook

Sau đó, trình thông dịch lệnh sẽ hiển thị ra thông tin sau

(base) C:\Users\Admin> jupyter notebook
[I 22:21:38.614 NotebookApp] Serving notebooks from local directory: C:\Users\Admin
[I 22:21:38.616 NotebookApp] Jupyter Notebook 6.1.3 is running at:
[I 22:21:38.617 NotebookApp] http://localhost:8888/?token=383e608d432953b5b1e06f6ace604ba466cd310e2d7981bb
[I 22:21:38.617 NotebookApp]  or http://127.0.0.1:8888/?token=383e608d432953b5b1e06f6ace604ba466cd310e2d7981bb
[I 22:21:38.618 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 22:21:38.973 NotebookApp]

    To access the notebook, open this file in a browser:
        file:///C:/Users/Admin/AppData/Roaming/jupyter/runtime/nbserver-884-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=383e608d432953b5b1e06f6ace604ba466cd310e2d7981bb
     or http://127.0.0.1:8888/?token=383e608d432953b5b1e06f6ace604ba466cd310e2d7981bb
[I 22:22:33.947 NotebookApp] 302 GET /?token=383e608d432953b5b1e06f6ace604ba466cd310e2d7981bb (::1) 2.00ms

Ngoài ra, trình duyệt cũng sẽ bật ra với đường dẫn http://localhost:8888/tree như hình dưới đây :

Vậy là những bạn xong những bước cơ bản để sử dụng Jupyter Notebook rồi !

Sử dụng Jupyter cơ bản

1. Tạo một notebook cơ bản

Trong giao diện trang chủ, để tạo một tài liệu Notebook mới click vào New và chọn loại tài liệu như Python, Text file, Folder …

Notebook khi mới được tạo có tên mặc định là Untitled. Bạn có thể click vào chữ “Untitled” phía trên cũng, bên phải logo Jupyter để tự thay đổi tên theo ý của bạn. Ví dụ ở đây tôi đổi tên thành Hello World

Chuyển về Tab quản lý file của Jupyter, bạn sẽ thấy một file mới có tên notebook01.ipynb với trạng thái là Running vì notebook này đang được mở. Bạn cũng có thể tắt một notebook bằng cách nhấn Shutdown.   

2. Làm việc với notebook

Một notebook gồm có nhiều cell ( ô ). Khi tạo mới một notebook, bạn luôn được tạo sẵn một cell rỗng tiên phong .

Cell trên có kiểu là “ Code ”, điều đó có nghĩa là bạn hoàn toàn có thể gõ code Python và thực thi ngay lập tức. Để thực thi code, bạn hoàn toàn có thể nhấn nút Run cell hoặc nhấn Ctrl + Enter .

Giải thích về những phần được khoanh đỏ :

Phần 1: Tiêu đề tài liệu, mặc định chưa nhập tiêu đề là Untitled. Khi nhấp chuột vào phần này, một cửa sổ sẽ hiện ra để bạn nhập tên file.

Phần 2: Thanh menu bao gồm các menu như:
File: các menu thao tác với file như tạo mới, lưu trữ, save as...
Edit: các menu thao tác với nội dung file như copy, paste văn bản, cell, tìm kiếm và thay thế một nội dung trong file, chèn hình ảnh...
View: menu điều chỉnh giao diện, hiển thị hoặc ẩn các thành phần giao diện trong Jupyter Notebook.
Insert, Cell: các hành động liên quan đến Cell là thành phần cơ bản của một tài liệu.
Kernel: các thao tác với kernel hiện hành như thay đổi nếu muốn sử dụng ngôn ngữ khác, restart, shutdown
Một số các menu khác.

Phần 3: Thanh menu nhanh (shortcut menu) bao gồm các thao tác nhanh mà bạn thường làm với một tài liệu, có một số nút trên đó chúng ta hay dùng nhất như:
Save file
Copy, paste
Thay đổi thứ tự các cell trong tài liệu
Chạy code trong tài liệu
Lựa chọn loại văn bản trong cell:
Code: Cell này chứa mã Python và có thể thực hiện được.
Markdown: Cell này chứa văn bản diễn giải.

Phần 4: Nội dung tài liệu chứa các cell có nội dung là code hoặc markdown, đây là vùng chúng ta sẽ làm việc chính.

Kết quả ngay lập tức được hiển thị tại ô bên dưới. Một cell rỗng sẽ được tạo sau khi bạn thực thi code. Hãy gõ tiếp một đoạn code Python để thử nghiệm nào :

Và đây là tác dụng :

Có thể thấy, việc chạy và thực thi code, trình diễn tài liệu trong Jupyter không khác gì những IDE ngoài kia, ngoại trừ thiếu mất 1 số ít tính năng như debug, setup thiên nhiên và môi trường, … Nhưng cũng không tương quan gì lắm, vì mục tiêu mà Jupyter được tạo ra là để tương tác và giáo dục, cho nên vì thế những tính năng được kiến thiết xây dựng bám sát theo tính tương tác và truyền tải thông tin đến người dùng sao cho dễ hiểu nhất hoàn toàn có thể, vì thế Jupyter đã làm thật sự rất tốt .

Tạm kết

Thông qua bài viết này, mình hy vọng bạn đã biết được thêm về một công cụ có ích tương hỗ cho việc học Python, tuy không có gì là phức tạp, nhưng mọi thành công xuất sắc đều khởi đầu từ cơ bản. Chúc mọi người học tốt !
( Chương sau mình sẽ đi sâu hơn vào cách sử dụng Jupyter Notebook )

ĐÁNH GIÁ post
Bài viết liên quan

Tư vấn miễn phí (24/7) 094 179 2255