Hướng dẫn cài đặt jupyter notebook

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.

1. Jupyter là gì?

Jupyter là một công cụ mã nguồn mở miễn phí 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 Python dễ dàng hơn. 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.

Tên Jupyter xuất phát từ cách chơi chữ Tôi là Python, bạn là R, chúng ta là Julia, hay một công thức ngắn gọn Jupyter = Julia + Python + R. Trước đây, Jupyter bắt nguồn từ dự án IPython, đến năm 2014 thì đổi tên sang Jupyter. Những người ❤️🐍 - yêu thích Python - sử dụng Jupyter rất nhiều. 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ữ.

Jupyter notebook là công cụ cho phép bạn đư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á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ì tác giả của file này tạo ra.

2. Cài đặt Jupyter

Jupyter có thể được cài đặt thông qua pip hoặc conda.

2.1 Cài đặt Jupyter thông qua pip

pip là trình quản lý các gói phần mềm viết bằng Python. pip được sử dụng để cài đặt các phần mềm viết bằng Python mà Jupyter là một gói phần mềm như vậy. Để cài đặt pip chúng ta tải và chạy file kịch bản cài đặt pip viết bằng Python, đương nhiên là máy tính của chúng ta cần được cài đặt Python. Bạn có thể kiểm tra xem đã cài đặt Python chưa thông qua câu lệnh:

python --version Python 3.7.3

Sau khi cài đặt pip xong, thực hiện lệnh sau để cài đặt Jupyter:

pip install jupyterlab

Cài đặt Jupyter thông qua conda

conda cũng là một trình quản lý gói phần mềm, đây là phần mềm mã nguồn mở để giải quyết những vấn đề phức tạp của Python. Phần mềm này được phát hành bởi công ty Anaconda. Nếu bạn cài đặt Anaconda thì conda cũng đã có sẵn trên máy và chỉ việc sử dụng. Để cài đặt Jupyter với conda chúng ta sử dụng câu lệnh:

conda install -c conda-forge jupyterlab

Cài đặt Jupyter với Anaconda

Như đã nói trong phần trên, Anaconda là một công cụ tổng hợp đã tích hợp sẵn rất nhiều các gói phần mềm, thư viện giúp chúng ta có một môi trường để thực hiện xây dựng các ứng dụng Python. Anacoda cũng tích hợp sẵn conda bên trong do đó bạn chỉ cần cài đặt Anacoda là đủ.

3. Chạy Jupyter Notebook server

Sau khi cài đặt xong Jupyter Notebook trong các bước ở trên, chúng ta có thể bắt đầu chạy Jupyter bằng câu lệnh:

jupyter notebook

Nếu bạn chọn cài Jupyter thông qua Anaconda thì chạy Anaconda Prompt (bạn có thể tìm thấy trong thư mục cài đặt Anaconda) và thực hiện lệnh trên.

(base) C:\Users\MS>python --version Python 3.7.3 (base) C:\Users\MS>jupyter notebook [I 21:41:10.991 NotebookApp] Writing notebook server cookie secret to C:\Users\MS\AppData\Roaming\jupyter\runtime\notebook_cookie_secret [I 21:41:15.703 NotebookApp] JupyterLab extension loaded from C:\ProgramData\Anaconda3\lib\site-packages\jupyterlab [I 21:41:15.704 NotebookApp] JupyterLab application directory is C:\ProgramData\Anaconda3\share\jupyter\lab [I 21:41:15.707 NotebookApp] Serving notebooks from local directory: C:\Users\MS [I 21:41:15.707 NotebookApp] The Jupyter Notebook is running at: [I 21:41:15.707 NotebookApp] http: [I 21:41:15.707 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 21:41:15.828 NotebookApp] To access the notebook, open this file in a browser: file:///C:/Users/MS/AppData/Roaming/jupyter/runtime/nbserver-5924-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=57677bdcc71aafc067ca1baba28ca404cea68900726e6be1

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

4. Hướng dẫn sử dụng Jupyter cơ bản

Trong phần này chúng ta sẽ tập trung tìm hiểu các tính năng, thành phần giao diện trong Jupyter Notebook là môi trường chính chúng ta sẽ thực hành viết code Python. Nhắc lại chút Python Notebook chính là các tài liệu đa thành phần có cả code và các thành phần text, media phức tạp... các tài liệu này có thể được chia sẻ và người khác đưa vào Jupyter và có thể chạy được code trên đó và hiểu những gì tác giả muốn truyền đạt qua các đoạn văn bản.

4.1 Tạo Notebook

Trong phần trước chúng ta đã chạy Notebook server thông qua câu lệnh jupyter notebook (Trong các bài viết về sau chúng ta sẽ sử dụng Anaconda và chạy Jupyter notebook server thông qua Anaconda Prompt). 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...

Ở đây, chúng ta sẽ tạo ra một tài liệu thực hiện Python và thêm vào các đoạn giới thiệu, hướng dẫn nên sẽ chọn mục Python 3. Giao diện của trang Jupyter chạy ở môi trường máy tính cục bộ sẽ như sau:

Trong giao diện này có các thành phần như sau:

  • 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.

Chúng ta sẽ thực hiện một ví dụ đầu tiên, Hello world để xem Jupyter Notebook này hoạt động thế nào? Vào Cell đầu tiên và đưa vào dòng code Python như sau:

print("Hello world!")

Tiếp đó bạn bấm vào nút Run trong menu nhanh hoặc tổ hợp phím tắt Ctrl + Enter, kết quả sẽ xuất hiện tiếp theo ở ngay dưới cell đó.

Trong ví dụ trên chúng ta có 3 cell:

  • Cell đầu tiên là dạng Markdown, chúng ta có thể đưa vào nội dung là văn bản, file hình ảnh, bảng biểu, danh sách...
  • Cell thứ hai nội dung là code Python print("Hello world!") và khi bạn bấm và Run hoặc tổ hợp phím Ctrl + Enter thì kết quả của dòng code hiển thị ngay ở bên dưới.
  • Sau khi thực hiện một cell thì Jupyter Notebook tự động chèn thêm một cell mới chưa có nội dung gì ở ngay dưới.

4.2 Thêm nội dung vào Jupyter Notebook

Như trong ví dụ Hello world ở trên chúng ta đã thêm vào một nội dung để diễn giải thêm cho đoạn code print("Hello world"). Nội dung này có thể là một đoạn văn bản bao gồm các tiêu đề, đoạn văn bản, hình ảnh, danh sách...

Để thêm nội dung văn bản vào Jupyter chúng ta phải lựa chọn dạng của cell là Markdown. Jupyter Notebook cho phép sử dụng Markdown là một ngôn ngữ đánh dấu, nó là tập hợp các ký hiệu tương ứng với một số thẻ trong ngôn ngữ HTML.

4.3 Sử dụng Markdown

4.3.1 Tiêu đề

Tiêu đề trong ngôn ngữ Markdown tương ứng với các thẻ H1, H2 ... H6 trong HTML, trong markdown sử dụng ký tự #, H1 tương ứng với #, H2 tương ứng với ##, ...

Sau khi đánh xong văn bản trong Cell, bấm nút Run hoặc tổ hợp phím tắt Ctrl + Enter, văn bản sau định dạng mới hiện ra.

4.3.2 Định dạng văn bản

Chúng ta có thể định dạng văn bản với ngôn ngữ Markdown, danh sách các định dạng này như sau:

  • Sử dụng dấu * để bắt đầu và kết thúc một đoạn bạn muốn in nghiêng.
  • Sử dụng dấu ** để bắt đầu và kết thúc một đoạn bạn muốn bôi đậm, tương ứng với thẻ b trong HTML.
  • Sử dụng _ để bắt đầu và kết thúc một đoạn bạn muốn gạch chân, tương ứng với thẻ u trong HTML.

Kết quả bạn sẽ thấy khi chạy là văn bản đã được định dạng như mong muốn với thẻ HTML.

4.3.3 Danh sách

Trong văn bản chúng ta có thể thêm vào các danh sách giống như thẻ ol, ul trong HTML. Với danh sách có thứ tự ol trong Markdown chúng ta chỉ cần đánh số đằng trước danh sách. Còn với danh sách không thứ tự chúng ta chỉ cần để đằng trước dấu * hoặc dấu + hoặc dấu -.

Kết quả nhận được khi bạn thực thi cell này.

4.3.4 Syntax Highlight

Trong các tài liệu, đôi khi chúng ta muốn đưa những đoạn code vào để diễn giải. Markdown cho phép đưa code vào một cách đơn giản bằng cách cho bắt đầu và kết thúc với ký tự ```.

Kết quả khi thực hiện cell

4.3.5 Các thành phần khác trong Markdown

Ngoài các thành phần trên, chúng ta cũng hay dùng các thành phần văn bản khác như ảnh, đường dẫn... tương ứng với các thẻ img, a trong HTML.

Kết quả của đoạn văn bản trên như sau:

Bạn thấy đấy, Jupyter Notebook cho phép bạn đưa vào rất nhiều các nội dung cùng với code Python cần thực thi, giúp cho tài liệu trở lên rất sống động. Còn một số các thành phần khác nữa trong Markdown nhưng do khuôn khổ bài viết, tôi chỉ giới thiệu đến bạn đọc những thành phần hay dùng nhất. Bạn có thể tham khảo danh Cú pháp Markdown nguyên gốc từ tác giả của hệ thống này.

Export và Import Jupyter Notebook

Khi bạn làm việc với Jupyter Notebook bạn có thể hoàn thành và muốn chia sẻ những gì mình làm với mọi người, bạn có thể export tài liệu này ra rất nhiều các dạng khác nhau như:

  • HTML
  • LaTeX
  • PDF
  • Notebook (.ipynb)
  • Markdown

Trong các dạng trên, chúng ta sẽ hay chia sẻ với nhau dạng file Notebook .ipynb, các file này có thể import lại vào Jupyter Notebook và thực hiện. Để export ra file sử dụng menu File -> Download as -> Notebook(.ipynb).

Khi bạn có một file Notebook (.ipynb) bạn muốn import vào hệ thống, bạn sử dụng nút Upload ở trang chủ Jupyter Notebook và trỏ đến file cần import. Khi đó file Jupyter Notebook sẽ xuất hiện trong danh sách trang chủ và chỉ cần nhấp vào là một tab mới xuất hiện với nội dung tài liệu này.

Kết luận

Qua bài viết bạn đã nắm được Jupyter là công cụ gì? và tại sao mọi người đang sử dụng nó rất nhiều khi học tập, làm việc với Python. Ngoài ra bạn cũng biết cách cài đặt Jupyter qua công cụ Anaconda, đây là một bộ các phần mềm mà chúng ta sẽ sử dụng rất nhiều khi nghiên cứu về khoa học dữ liệu, trí tuệ nhân tạo, machine learning... Bài viết này là khởi đầu của Khóa học Python trên All Laravel, rất mong nhận được sự đóng góp ý kiến từ các bạn.

Source code: Jupyter - Hello world.ipynb