Tôi có thể học Python trong Jupyter Notebook không?

Mục đích của cuốn sách này là dạy bạn viết mã bằng Python đồng thời phát triển tư duy máy tính—tức là cách chúng ta suy nghĩ khi viết mã
Thứ tự các chủ đề được thiết kế để kích thích và củng cố các kỹ năng như logic, giải quyết vấn đề và viết mã rõ ràng
Cú pháp Python được giải thích rộng rãi theo cách đơn giản nhưng chính xác, tập trung vào các khái niệm và từ vựng
Các chủ đề bao gồm các loại dữ liệu (chuỗi, danh sách, từ điển, v.v. ), cấu trúc if/else, vòng lặp for, vòng lặp while, hàm, mô-đun và lập trình hướng đối tượng
Các ví dụ được nhúng trong tường thuật để cung cấp ngữ cảnh và khuyến khích ghi nhớ, đồng thời chúng được bổ sung thêm các gợi ý về cách phát âm mã
Cuốn sách bao gồm ba mươi tám chương, mỗi chương tương ứng với một Máy tính xách tay Jupyter nơi bạn có thể chơi với mã được giải thích trong văn bản
Các chương chứa cả bài tập lý thuyết, để xác minh sự hiểu biết về các khái niệm và bài tập mã hóa, để học bằng cách thực hành
Các giải pháp bài tập được mô tả trong diễn đàn cộng đồng, nơi bạn có thể đặt câu hỏi và đề xuất các giải pháp thay thế
Ở cuối mỗi chương, bạn sẽ tìm thấy các phần tóm tắt và phần “chuyên sâu hơn”, với các gợi ý, mẹo và điều thú vị
Cuốn sách được viết bằng một ngôn ngữ đơn giản và thông tục trong khi chính xác và chi tiết
Tài liệu của cuốn sách này đã được thử nghiệm và hoàn thiện trong hơn một nghìn giờ giảng dạy trực tiếp,
với các sinh viên quốc tế thuộc các nền tảng giáo dục khác nhau

Jupyter Notebook là một công cụ cực kỳ mạnh mẽ để phát triển và trình bày các dự án khoa học dữ liệu một cách tương tác. Bài viết này sẽ hướng dẫn bạn cách sử dụng Jupyter Notebooks cho các dự án khoa học dữ liệu và cách thiết lập nó trên máy cục bộ của bạn

Đầu tiên, mặc dù. "sổ tay" là gì?

Sổ ghi chép tích hợp mã và đầu ra của nó vào một tài liệu duy nhất kết hợp hình ảnh trực quan, văn bản tường thuật, phương trình toán học và đa phương tiện khác. Nói cách khác. đó là một tài liệu duy nhất nơi bạn có thể chạy mã, hiển thị đầu ra, đồng thời thêm giải thích, công thức, biểu đồ và làm cho công việc của bạn minh bạch hơn, dễ hiểu, có thể lặp lại và có thể chia sẻ

Sử dụng Sổ ghi chép hiện là một phần chính trong quy trình khoa học dữ liệu tại các công ty trên toàn cầu. Nếu mục tiêu của bạn là làm việc với dữ liệu, việc sử dụng Notebook sẽ tăng tốc quy trình làm việc của bạn và giúp bạn giao tiếp và chia sẻ kết quả dễ dàng hơn

Hơn hết, là một phần của Dự án Jupyter mã nguồn mở, Jupyter Notebooks hoàn toàn miễn phí. Bạn có thể tự tải phần mềm xuống hoặc là một phần của bộ công cụ khoa học dữ liệu Anaconda

Mặc dù có thể sử dụng nhiều ngôn ngữ lập trình khác nhau trong Jupyter Notebooks, nhưng bài viết này sẽ tập trung vào Python, vì đây là trường hợp sử dụng phổ biến nhất. (Trong số những người dùng R, R Studio có xu hướng là lựa chọn phổ biến hơn)

Làm thế nào để làm theo hướng dẫn này

Để tận dụng tối đa hướng dẫn này, bạn nên làm quen với lập trình — cụ thể là Python và pandas. Điều đó nói rằng, nếu bạn có kinh nghiệm với một ngôn ngữ khác, thì Python trong bài viết này không nên quá khó hiểu và vẫn sẽ giúp bạn cài đặt Jupyter Notebooks cục bộ

Jupyter Notebooks cũng có thể hoạt động như một nền tảng linh hoạt để làm quen với gấu trúc và thậm chí cả Python, điều này sẽ trở nên rõ ràng trong hướng dẫn này

Chúng tôi sẽ

  • Bao gồm những điều cơ bản về cài đặt Jupyter và tạo sổ ghi chép đầu tiên của bạn
  • Tìm hiểu sâu hơn và tìm hiểu tất cả các thuật ngữ quan trọng
  • Khám phá cách dễ dàng chia sẻ và xuất bản sổ ghi chép trực tuyến

(Thực ra bài viết này được viết dưới dạng Jupyter Notebook. Nó được xuất bản ở đây ở dạng chỉ đọc, nhưng đây là một ví dụ điển hình về cách sổ ghi chép linh hoạt có thể. Trên thực tế, hầu hết các hướng dẫn lập trình và thậm chí cả các khóa học Python của chúng tôi đều được tạo bằng Jupyter Notebooks)

Phân tích dữ liệu ví dụ trong Notebook Jupyter

Trước tiên, chúng tôi sẽ hướng dẫn thiết lập và phân tích mẫu để trả lời câu hỏi thực tế. Điều này sẽ chứng minh quy trình của sổ ghi chép làm cho các nhiệm vụ khoa học dữ liệu trở nên trực quan hơn đối với chúng ta khi chúng ta làm việc và đối với những người khác khi đã đến lúc chia sẻ công việc của mình

Vì vậy, giả sử bạn là nhà phân tích dữ liệu và bạn được giao nhiệm vụ tìm hiểu xem lợi nhuận của các công ty lớn nhất ở Hoa Kỳ đã thay đổi như thế nào trong lịch sử. Bạn tìm thấy tập hợp dữ liệu về các công ty trong danh sách Fortune 500 trong hơn 50 năm kể từ lần xuất bản đầu tiên của danh sách vào năm 1955, được tổng hợp từ kho lưu trữ công khai của Fortune. Chúng tôi đã tiếp tục và tạo một tệp CSV chứa dữ liệu mà bạn có thể sử dụng tại đây

Như chúng tôi sẽ chứng minh, Jupyter Notebooks hoàn toàn phù hợp cho cuộc điều tra này. Đầu tiên, hãy tiếp tục và cài đặt Jupyter

Cài đặt

Cách dễ nhất để người mới bắt đầu với Jupyter Notebooks là cài đặt Anaconda

Anaconda là bản phân phối Python được sử dụng rộng rãi nhất cho khoa học dữ liệu và được cài đặt sẵn tất cả các thư viện và công cụ phổ biến nhất

Một số thư viện Python lớn nhất có trong Anaconda bao gồm NumPy, gấu trúc và Matplotlib, mặc dù danh sách hơn 1000 đầy đủ là đầy đủ

Do đó, Anaconda cho phép chúng tôi bắt đầu hoạt động với một hội thảo khoa học dữ liệu được lưu trữ đầy đủ mà không gặp rắc rối trong việc quản lý vô số cài đặt hoặc lo lắng về các phụ thuộc và hệ điều hành cụ thể (đọc. sự cố cài đặt dành riêng cho Windows)

Để có được Anaconda, chỉ cần

  1. Tải xuống phiên bản mới nhất của Anaconda cho Python 3. 8
  2. Cài đặt Anaconda bằng cách làm theo hướng dẫn trên trang tải xuống và/hoặc trong tệp thực thi

Nếu bạn là người dùng nâng cao hơn đã cài đặt Python và muốn quản lý các gói của mình theo cách thủ công, bạn chỉ cần sử dụng pip

 

pip3 install jupyter

Tạo Notebook đầu tiên của bạn

Trong phần này, chúng ta sẽ học cách chạy và lưu sổ ghi chép, làm quen với cấu trúc của chúng và hiểu giao diện. Chúng ta sẽ trở nên thân thiết với một số thuật ngữ cốt lõi sẽ hướng bạn đến sự hiểu biết thực tế về cách tự mình sử dụng Jupyter Notebooks và giúp chúng ta chuẩn bị cho phần tiếp theo, phần này sẽ hướng dẫn bạn phân tích dữ liệu ví dụ và áp dụng mọi thứ chúng ta học được ở đây vào cuộc sống

Chạy Jupyter

Trên Windows, bạn có thể chạy Jupyter thông qua lối tắt mà Anaconda thêm vào menu bắt đầu của bạn, thao tác này sẽ mở một tab mới trong trình duyệt web mặc định của bạn, trông giống như ảnh chụp màn hình sau

Tôi có thể học Python trong Jupyter Notebook không?

Đây chưa phải là một cuốn sổ tay, nhưng đừng hoảng sợ. Không có gì nhiều cho nó. Đây là Bảng điều khiển Notebook, được thiết kế đặc biệt để quản lý Notebook Jupyter của bạn. Hãy nghĩ về nó như bệ phóng để khám phá, chỉnh sửa và tạo sổ ghi chép của bạn

Xin lưu ý rằng bảng điều khiển sẽ chỉ cung cấp cho bạn quyền truy cập vào các tệp và thư mục con có trong thư mục khởi động của Jupyter (i. e. , nơi cài đặt Jupyter hoặc Anaconda). Tuy nhiên, thư mục khởi động có thể được thay đổi

Cũng có thể khởi động bảng điều khiển trên bất kỳ hệ thống nào thông qua dấu nhắc lệnh (hoặc thiết bị đầu cuối trên hệ thống Unix) bằng cách nhập lệnh

import time
time.sleep(3)
8;

Khi Jupyter Notebook mở trong trình duyệt của bạn, bạn có thể nhận thấy rằng URL cho trang tổng quan giống như

import time
time.sleep(3)
9. Localhost không phải là một trang web, nhưng cho biết rằng nội dung đang được cung cấp từ máy cục bộ của bạn. máy tính của riêng bạn

Notebook và bảng điều khiển của Jupyter là các ứng dụng web và Jupyter khởi động một máy chủ Python cục bộ để cung cấp các ứng dụng này cho trình duyệt web của bạn, làm cho nó về cơ bản độc lập với nền tảng và mở ra cơ hội chia sẻ dễ dàng hơn trên web

(Nếu bạn chưa hiểu điều này, đừng lo lắng - điểm quan trọng là mặc dù Jupyter Notebooks mở trong trình duyệt của bạn, nhưng nó đang được lưu trữ và chạy trên máy cục bộ của bạn. Sổ ghi chép của bạn không thực sự có trên web cho đến khi bạn quyết định chia sẻ chúng. )

Giao diện của bảng điều khiển hầu hết đều dễ hiểu — mặc dù chúng tôi sẽ quay lại vấn đề này một thời gian ngắn sau. Vậy chúng ta đang chờ đợi điều gì?

Tôi có thể học Python trong Jupyter Notebook không?

Xin chào, chúng ta đây. Jupyter Notebook đầu tiên của bạn sẽ mở trong tab mới — mỗi sổ ghi chép sử dụng tab riêng vì bạn có thể mở đồng thời nhiều sổ ghi chép

Nếu quay lại trang tổng quan, bạn sẽ thấy tệp mới

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
0 và bạn sẽ thấy một số văn bản màu xanh lá cây cho biết sổ ghi chép của bạn đang chạy

Tệp ipynb là gì?

câu trả lời ngắn. mỗi 

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
1 tệp là một sổ ghi chép, vì vậy, mỗi khi bạn tạo một sổ ghi chép mới, một tệp 
def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
1 mới sẽ được tạo

Câu trả lời dài hơn. Mỗi tệp

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
1 là một tệp văn bản mô tả nội dung của sổ ghi chép của bạn ở định dạng có tên là JSON. Mỗi ô và nội dung của nó, bao gồm cả tệp đính kèm hình ảnh đã được chuyển đổi thành chuỗi văn bản, được liệt kê trong đó cùng với một số

Bạn có thể tự chỉnh sửa phần này — nếu bạn biết mình đang làm gì. — bằng cách chọn “Chỉnh sửa > Chỉnh sửa siêu dữ liệu sổ ghi chép” từ thanh menu trong sổ ghi chép. Bạn cũng có thể xem nội dung của các tệp sổ ghi chép của mình bằng cách chọn “Chỉnh sửa” từ các điều khiển trên bảng điều khiển

Tuy nhiên, từ khóa có thể. Trong hầu hết các trường hợp, không có lý do gì bạn cần chỉnh sửa siêu dữ liệu sổ ghi chép của mình theo cách thủ công

Giao diện Notebook

Bây giờ bạn có một cuốn sổ tay đang mở trước mặt, giao diện của nó hy vọng sẽ không hoàn toàn xa lạ. Rốt cuộc, Jupyter về cơ bản chỉ là một trình xử lý văn bản nâng cao

Tại sao không có một cái nhìn xung quanh?

Tôi có thể học Python trong Jupyter Notebook không?

Có 2 thuật ngữ khá nổi bật mà bạn cần chú ý, có thể là mới đối với bạn. các ô và nhân là chìa khóa để hiểu Jupyter và những gì làm cho nó không chỉ là một trình xử lý văn bản. May mắn thay, những khái niệm này không khó hiểu

  • Nhân là một “công cụ tính toán” thực thi mã có trong tài liệu sổ ghi chép
  • Một ô là một vùng chứa để văn bản được hiển thị trong sổ ghi chép hoặc mã được thực thi bởi nhân của sổ ghi chép

tế bào

Chúng ta sẽ quay lại hạt nhân sau một chút, nhưng trước tiên hãy tìm hiểu về các tế bào. Các tế bào tạo thành phần thân của một cuốn sổ. Trong ảnh chụp màn hình của một sổ ghi chép mới ở phần trên, ô có đường viền màu lục là một ô trống. Có hai loại tế bào chính mà chúng tôi sẽ đề cập

  • Một ô mã chứa mã sẽ được thực thi trong nhân. Khi mã được chạy, sổ ghi chép sẽ hiển thị đầu ra bên dưới ô mã đã tạo mã đó
  • Ô Markdown chứa văn bản được định dạng bằng Markdown và hiển thị đầu ra của nó tại chỗ khi chạy ô Markdown

Ô đầu tiên trong sổ ghi chép mới luôn là ô mã

Hãy thử nghiệm với một ví dụ hello world cổ điển. Nhập

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
5 vào ô và nhấp vào nút chạy 
Tôi có thể học Python trong Jupyter Notebook không?
 trên thanh công cụ ở trên hoặc nhấn 
def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
6.

Kết quả sẽ giống như thế này

print('Hello World!')
Hello World!

Khi chúng tôi chạy ô, đầu ra của ô được hiển thị bên dưới và nhãn bên trái của ô sẽ thay đổi từ

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
7 thành 
def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
8

Đầu ra của một ô mã cũng là một phần của tài liệu, đó là lý do tại sao bạn có thể xem nó trong bài viết này. Bạn luôn có thể cho biết sự khác biệt giữa các ô mã và Markdown vì các ô mã có nhãn đó ở bên trái và các ô Markdown thì không

Phần “In” của nhãn chỉ đơn giản là viết tắt của “Input”, trong khi số nhãn cho biết khi nào ô được thực thi trên kernel — trong trường hợp này, ô được thực thi trước

Chạy lại ô và nhãn sẽ thay đổi thành

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
9 vì bây giờ ô này là ô thứ hai được chạy trên kernel. Lý do tại sao điều này lại hữu ích sau này sẽ trở nên rõ ràng hơn khi chúng ta xem xét kỹ hơn về hạt nhân

Từ thanh trình đơn, hãy nhấp vào Chèn và chọn Chèn ô bên dưới để tạo một ô mã mới bên dưới ô đầu tiên của bạn và thử mã sau để xem điều gì sẽ xảy ra. Bạn có nhận thấy bất cứ điều gì khác nhau?

import time
time.sleep(3)

Ô này không tạo ra bất kỳ đầu ra nào, nhưng phải mất ba giây để thực thi. Lưu ý cách Jupyter biểu thị khi ô hiện đang chạy bằng cách thay đổi nhãn của nó thành

'Hello, Tim!'
0

Nói chung, đầu ra của một ô đến từ bất kỳ dữ liệu văn bản nào được in cụ thể trong quá trình thực thi của ô, cũng như giá trị của dòng cuối cùng trong ô, có thể là một biến đơn lẻ, một lệnh gọi hàm hoặc thứ gì khác. Ví dụ

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
'Hello, Tim!'

Bạn sẽ thấy mình sử dụng điều này gần như liên tục trong các dự án của riêng bạn và chúng ta sẽ thấy nhiều hơn về điều đó sau này

Các phím tắt bàn phím

Một điều cuối cùng mà bạn có thể nhận thấy khi chạy các ô của mình là đường viền của chúng chuyển sang màu xanh lam, trong khi nó có màu xanh lục khi bạn đang chỉnh sửa. Trong Máy tính xách tay Jupyter, luôn có một ô “đang hoạt động” được đánh dấu bằng đường viền có màu biểu thị chế độ hiện tại của nó

  • Đường viền màu lục — ô đang ở “chế độ chỉnh sửa”
  • Đường viền màu lam — ô đang ở “chế độ lệnh”

Vậy chúng ta có thể làm gì với một ô khi nó ở chế độ lệnh? . Cách tốt nhất để sử dụng chúng là sử dụng phím tắt

Phím tắt là một khía cạnh rất phổ biến của môi trường Jupyter vì chúng tạo điều kiện thuận lợi cho quy trình làm việc dựa trên ô nhanh chóng. Nhiều trong số này là những hành động bạn có thể thực hiện trên ô đang hoạt động khi nó ở chế độ lệnh

Dưới đây, bạn sẽ tìm thấy danh sách một số phím tắt của Jupyter. Bạn không cần phải ghi nhớ tất cả chúng ngay lập tức, nhưng danh sách này sẽ cho bạn ý tưởng tốt về những gì có thể

  • Chuyển đổi giữa chế độ chỉnh sửa và chế độ lệnh lần lượt bằng 
    'Hello, Tim!'
    2 và 
    'Hello, Tim!'
    3
  • Khi ở chế độ lệnh
    • Cuộn lên và xuống các ô của bạn bằng các phím 
      'Hello, Tim!'
      4 và 
      'Hello, Tim!'
    • Nhấn 
      'Hello, Tim!'
      6 hoặc 
      'Hello, Tim!'
      7 để chèn ô mới vào bên trên hoặc bên dưới ô hiện hành
    • 'Hello, Tim!'
      8 sẽ chuyển đổi ô đang hoạt động thành ô Markdown
    • 'Hello, Tim!'
      9 sẽ đặt ô đang hoạt động thành ô mã
    • # This is a level 1 heading
      
      ## This is a level 2 heading
      
      This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 
      
      Paragraphs must be separated by an empty line. 
      
      * Sometimes we want to include lists. 
      * Which can be bulleted using asterisks. 
      
      1. Lists can also be numbered. 
      2. If we want an ordered list.
      
      [It is possible to include hyperlinks](https://www.example.com)
      
      Inline code uses single backticks: foo(), and code blocks use triple backticks: 
      ```
      bar()
      ``` 
      Or can be indented by 4 spaces: 
      
          foo()
      
      And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)
      0 (
      # This is a level 1 heading
      
      ## This is a level 2 heading
      
      This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 
      
      Paragraphs must be separated by an empty line. 
      
      * Sometimes we want to include lists. 
      * Which can be bulleted using asterisks. 
      
      1. Lists can also be numbered. 
      2. If we want an ordered list.
      
      [It is possible to include hyperlinks](https://www.example.com)
      
      Inline code uses single backticks: foo(), and code blocks use triple backticks: 
      ```
      bar()
      ``` 
      Or can be indented by 4 spaces: 
      
          foo()
      
      And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)
      1 hai lần) sẽ xóa ô đang hoạt động
    • # This is a level 1 heading
      
      ## This is a level 2 heading
      
      This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 
      
      Paragraphs must be separated by an empty line. 
      
      * Sometimes we want to include lists. 
      * Which can be bulleted using asterisks. 
      
      1. Lists can also be numbered. 
      2. If we want an ordered list.
      
      [It is possible to include hyperlinks](https://www.example.com)
      
      Inline code uses single backticks: foo(), and code blocks use triple backticks: 
      ```
      bar()
      ``` 
      Or can be indented by 4 spaces: 
      
          foo()
      
      And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)
      2 sẽ hoàn tác thao tác xóa ô
    • Giữ 
      # This is a level 1 heading
      
      ## This is a level 2 heading
      
      This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 
      
      Paragraphs must be separated by an empty line. 
      
      * Sometimes we want to include lists. 
      * Which can be bulleted using asterisks. 
      
      1. Lists can also be numbered. 
      2. If we want an ordered list.
      
      [It is possible to include hyperlinks](https://www.example.com)
      
      Inline code uses single backticks: foo(), and code blocks use triple backticks: 
      ```
      bar()
      ``` 
      Or can be indented by 4 spaces: 
      
          foo()
      
      And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)
      3 và nhấn 
      'Hello, Tim!'
      4 hoặc 
      'Hello, Tim!'
      5 để chọn nhiều ô cùng lúc. Với nhiều ô được chọn,
      # This is a level 1 heading
      
      ## This is a level 2 heading
      
      This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 
      
      Paragraphs must be separated by an empty line. 
      
      * Sometimes we want to include lists. 
      * Which can be bulleted using asterisks. 
      
      1. Lists can also be numbered. 
      2. If we want an ordered list.
      
      [It is possible to include hyperlinks](https://www.example.com)
      
      Inline code uses single backticks: foo(), and code blocks use triple backticks: 
      ```
      bar()
      ``` 
      Or can be indented by 4 spaces: 
      
          foo()
      
      And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)
      6 sẽ hợp nhất lựa chọn của bạn
  • # This is a level 1 heading
    
    ## This is a level 2 heading
    
    This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 
    
    Paragraphs must be separated by an empty line. 
    
    * Sometimes we want to include lists. 
    * Which can be bulleted using asterisks. 
    
    1. Lists can also be numbered. 
    2. If we want an ordered list.
    
    [It is possible to include hyperlinks](https://www.example.com)
    
    Inline code uses single backticks: foo(), and code blocks use triple backticks: 
    ```
    bar()
    ``` 
    Or can be indented by 4 spaces: 
    
        foo()
    
    And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)
    7, trong chế độ chỉnh sửa, sẽ tách ô đang hoạt động tại con trỏ
  • Bạn cũng có thể nhấp vào và 
    # This is a level 1 heading
    
    ## This is a level 2 heading
    
    This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 
    
    Paragraphs must be separated by an empty line. 
    
    * Sometimes we want to include lists. 
    * Which can be bulleted using asterisks. 
    
    1. Lists can also be numbered. 
    2. If we want an ordered list.
    
    [It is possible to include hyperlinks](https://www.example.com)
    
    Inline code uses single backticks: foo(), and code blocks use triple backticks: 
    ```
    bar()
    ``` 
    Or can be indented by 4 spaces: 
    
        foo()
    
    And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)
    8 ở lề bên trái của các ô để chọn chúng

Hãy tiếp tục và thử những điều này trong sổ ghi chép của riêng bạn. Khi bạn đã sẵn sàng, hãy tạo một ô Markdown mới và chúng ta sẽ tìm hiểu cách định dạng văn bản trong sổ ghi chép của mình

đánh dấu

Markdown là một ngôn ngữ đánh dấu nhẹ, dễ học để định dạng văn bản thuần túy. Cú pháp của nó tương ứng một-một với các thẻ HTML, vì vậy một số kiến ​​thức trước đây sẽ hữu ích nhưng chắc chắn không phải là điều kiện tiên quyết

Hãy nhớ rằng bài viết này được viết trên sổ ghi chép Jupyter, vì vậy tất cả văn bản tường thuật và hình ảnh mà bạn đã thấy cho đến nay đều được viết bằng Markdown. Hãy bao gồm những điều cơ bản với một ví dụ nhanh

# This is a level 1 heading

## This is a level 2 heading

This is some plain text that forms a paragraph. Add emphasis via **bold** and __bold__, or *italic* and _italic_. 

Paragraphs must be separated by an empty line. 

* Sometimes we want to include lists. 
* Which can be bulleted using asterisks. 

1. Lists can also be numbered. 
2. If we want an ordered list.

[It is possible to include hyperlinks](https://www.example.com)

Inline code uses single backticks: foo(), and code blocks use triple backticks: 
```
bar()
``` 
Or can be indented by 4 spaces: 

    foo()

And finally, adding images is easy: ![Alt text](https://www.example.com/image.jpg)

Đây là cách Markdown sẽ trông như thế nào khi bạn chạy ô để hiển thị nó

Tôi có thể học Python trong Jupyter Notebook không?

(Lưu ý rằng văn bản thay thế cho hình ảnh được hiển thị ở đây vì chúng tôi thực sự không sử dụng URL hình ảnh hợp lệ trong ví dụ của mình)

Khi đính kèm hình ảnh, bạn có ba tùy chọn

  • Sử dụng URL tới một hình ảnh trên web
  • Sử dụng một URL cục bộ cho một hình ảnh mà bạn sẽ giữ bên cạnh sổ ghi chép của mình, chẳng hạn như trong cùng một repo git
  • Thêm tệp đính kèm qua “Chỉnh sửa > Chèn hình ảnh”; . Lưu ý rằng điều này sẽ làm cho tệp
    def say_hello(recipient):
        return 'Hello, {}!'.format(recipient)
    
    say_hello('Tim')
    1 của bạn lớn hơn nhiều

Còn nhiều điều nữa về Markdown, đặc biệt là xung quanh siêu liên kết và cũng có thể chỉ cần bao gồm HTML đơn giản. Sau khi nhận thấy mình đã đạt đến giới hạn của những điều cơ bản ở trên, bạn có thể tham khảo hướng dẫn chính thức từ người tạo ra Markdown, John Gruber, trên trang web của anh ấy

nhân

Đằng sau mỗi máy tính xách tay chạy một hạt nhân. Khi bạn chạy một ô mã, mã đó được thực thi trong kernel. Bất kỳ đầu ra nào được trả lại cho ô sẽ được hiển thị. Trạng thái của kernel tồn tại theo thời gian và giữa các ô - nó liên quan đến toàn bộ tài liệu chứ không phải các ô riêng lẻ

Ví dụ: nếu bạn nhập thư viện hoặc khai báo biến trong một ô, chúng sẽ có sẵn trong ô khác. Hãy dùng thử để cảm nhận. Đầu tiên, chúng tôi sẽ nhập gói Python và xác định hàm

import numpy as np
def square(x):
    return x * x

Khi chúng tôi đã thực thi ô ở trên, chúng tôi có thể tham chiếu

import numpy as np
def square(x):
    return x * x
1 và 
import numpy as np
def square(x):
    return x * x
2 trong bất kỳ ô nào khác

x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
1 squared is 1

Điều này sẽ hoạt động bất kể thứ tự của các ô trong sổ ghi chép của bạn. Miễn là một ô đã được chạy, mọi biến bạn đã khai báo hoặc thư viện bạn đã nhập sẽ có sẵn trong các ô khác

Bạn có thể tự mình thử, hãy in lại các biến của chúng ta

print('Hello World!')
0
print('Hello World!')
1

Không có gì ngạc nhiên ở đây. Nhưng điều gì sẽ xảy ra nếu chúng ta thay đổi giá trị của 

import numpy as np
def square(x):
    return x * x
3

print('Hello World!')
2

Nếu chúng ta chạy ô trên, bạn nghĩ điều gì sẽ xảy ra?

Chúng tôi sẽ nhận được một đầu ra như.

import numpy as np
def square(x):
    return x * x
4. Điều này là do một khi chúng tôi đã chạy ô mã 
import numpy as np
def square(x):
    return x * x
5, thì
import numpy as np
def square(x):
    return x * x
6 không còn bằng bình phương của x trong nhân nữa

Hầu hết thời gian khi bạn tạo sổ ghi chép, quy trình sẽ từ trên xuống dưới. Nhưng việc quay lại để thực hiện các thay đổi là điều bình thường. Khi chúng ta cần thực hiện các thay đổi đối với một ô trước đó, thứ tự thực hiện mà chúng ta có thể thấy ở bên trái của mỗi ô, chẳng hạn như

import numpy as np
def square(x):
    return x * x
7, có thể giúp chúng ta chẩn đoán sự cố bằng cách xem các ô đã chạy theo thứ tự nào

Và nếu chúng ta muốn đặt lại mọi thứ, có một số tùy chọn cực kỳ hữu ích từ menu Kernel

  • Khởi động lại. khởi động lại kernel, do đó xóa tất cả các biến, v.v. đã được xác định
  • Khởi động lại và xóa đầu ra. giống như trên nhưng cũng sẽ xóa đầu ra được hiển thị bên dưới các ô mã của bạn
  • Khởi động lại và chạy tất cả. giống như trên nhưng cũng sẽ chạy tất cả các ô của bạn theo thứ tự từ đầu đến cuối

Nếu hạt nhân của bạn bị kẹt khi tính toán và bạn muốn dừng nó, bạn có thể chọn tùy chọn Ngắt

Chọn hạt nhân

Bạn có thể nhận thấy rằng Jupyter cung cấp cho bạn tùy chọn thay đổi kernel và trên thực tế có rất nhiều tùy chọn khác nhau để lựa chọn. Quay lại khi bạn tạo sổ ghi chép mới từ bảng điều khiển bằng cách chọn phiên bản Python, bạn thực sự đang chọn kernel nào sẽ sử dụng

Có nhân cho các phiên bản Python khác nhau và cho hơn 100 ngôn ngữ bao gồm Java, C và thậm chí cả Fortran. Các nhà khoa học dữ liệu có thể đặc biệt quan tâm đến hạt nhân của R và Julia, cũng như cả imatlab và Calysto MATLAB Kernel cho Matlab

Hạt nhân SoS cung cấp hỗ trợ đa ngôn ngữ trong một sổ ghi chép

Mỗi hạt nhân có hướng dẫn cài đặt riêng, nhưng có thể sẽ yêu cầu bạn chạy một số lệnh trên máy tính của mình

Phân tích ví dụ

Bây giờ chúng ta đã xem Jupyter Notebook là gì, đã đến lúc xem xét cách chúng được sử dụng trong thực tế, điều này sẽ giúp chúng ta hiểu rõ hơn về lý do tại sao chúng lại phổ biến đến vậy

Cuối cùng cũng đến lúc bắt đầu với bộ dữ liệu Fortune 500 đã đề cập trước đó. Hãy nhớ rằng, mục tiêu của chúng tôi là tìm hiểu xem lợi nhuận của các công ty lớn nhất ở Hoa Kỳ đã thay đổi như thế nào trong lịch sử

Điều đáng chú ý là mọi người sẽ phát triển sở thích và phong cách của riêng mình, nhưng các nguyên tắc chung vẫn được áp dụng. Bạn có thể làm theo phần này trong sổ ghi chép của riêng mình nếu muốn hoặc sử dụng phần này làm hướng dẫn để tạo phương pháp tiếp cận của riêng bạn

Đặt tên cho sổ ghi chép của bạn

Trước khi bạn bắt đầu viết dự án của mình, có lẽ bạn sẽ muốn đặt cho nó một cái tên có ý nghĩa. tên tệp

import numpy as np
def square(x):
    return x * x
8 ở phía trên bên trái của màn hình để nhập tên tệp mới và nhấn vào biểu tượng Lưu (trông giống như một đĩa mềm) bên dưới để lưu

Lưu ý rằng việc đóng tab sổ ghi chép trong trình duyệt của bạn sẽ không "đóng" sổ ghi chép của bạn theo cách đóng tài liệu trong ứng dụng truyền thống. Nhân của sổ ghi chép sẽ tiếp tục chạy ở chế độ nền và cần được tắt trước khi nó thực sự được "đóng" — mặc dù điều này khá hữu ích nếu bạn vô tình đóng tab hoặc trình duyệt của mình

Nếu kernel bị shutdown, bạn có thể đóng tab mà không cần lo nó còn chạy hay không

Cách dễ nhất để thực hiện việc này là chọn “Tệp > Đóng và Dừng” từ menu sổ ghi chép. Tuy nhiên, bạn cũng có thể tắt kernel bằng cách truy cập “Kernel > Shutdown” từ bên trong ứng dụng sổ ghi chép hoặc bằng cách chọn sổ ghi chép trong bảng điều khiển và nhấp vào “Shutdown” (xem hình ảnh bên dưới)

Tôi có thể học Python trong Jupyter Notebook không?

Cài đặt

Thông thường, bạn sẽ bắt đầu với một ô mã dành riêng cho nhập và thiết lập, để nếu bạn chọn thêm hoặc thay đổi bất kỳ thứ gì, bạn có thể chỉ cần chỉnh sửa và chạy lại ô đó mà không gây ra bất kỳ tác dụng phụ nào

print('Hello World!')
3

Chúng tôi sẽ nhập pandas để làm việc với dữ liệu của chúng tôi, Matplotlib để vẽ biểu đồ và Seaborn để làm cho biểu đồ của chúng tôi đẹp hơn. Việc nhập NumPy cũng rất phổ biến nhưng trong trường hợp này, pandas nhập nó cho chúng tôi

Dòng đầu tiên đó không phải là lệnh Python, mà sử dụng một thứ gọi là phép thuật dòng để hướng dẫn Jupyter nắm bắt các ô Matplotlib và hiển thị chúng trong đầu ra của ô. Chúng ta sẽ nói thêm một chút về phép thuật dòng sau và chúng cũng được đề cập trong hướng dẫn Jupyter Notebooks nâng cao của chúng tôi

Bây giờ, hãy tiếp tục và tải dữ liệu của chúng tôi

print('Hello World!')
4

Cũng hợp lý khi làm điều này trong một ô duy nhất, trong trường hợp chúng tôi cần tải lại nó bất kỳ lúc nào

Lưu và Điểm kiểm tra

Bây giờ chúng ta đã bắt đầu, cách tốt nhất là tiết kiệm thường xuyên. Nhấn 

import numpy as np
def square(x):
    return x * x
9 sẽ lưu sổ ghi chép của chúng ta bằng cách gọi lệnh “Lưu và điểm kiểm tra”, nhưng điểm kiểm tra này là gì?

Mỗi khi chúng tôi tạo một sổ ghi chép mới, một tệp điểm kiểm tra sẽ được tạo cùng với tệp sổ ghi chép. Nó nằm trong một thư mục con ẩn của vị trí lưu của bạn có tên là

x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
0 và cũng là một tệp 
def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
1

Theo mặc định, Jupyter sẽ tự động lưu sổ ghi chép của bạn cứ sau 120 giây vào tệp điểm kiểm tra này mà không thay đổi tệp sổ ghi chép chính của bạn. Khi bạn “Lưu và điểm kiểm tra”, cả tệp sổ ghi chép và điểm kiểm tra đều được cập nhật. Do đó, điểm kiểm tra cho phép bạn khôi phục công việc chưa lưu của mình trong trường hợp xảy ra sự cố không mong muốn

Bạn có thể hoàn nguyên về điểm kiểm tra từ menu thông qua “Tệp > Hoàn nguyên về điểm kiểm tra. ”

Điều tra tập dữ liệu của chúng tôi

Bây giờ chúng tôi đang thực sự lăn. Sổ tay của chúng tôi được lưu an toàn và chúng tôi đã tải tập dữ liệu của mình 

x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
2 vào cấu trúc dữ liệu gấu trúc được sử dụng nhiều nhất, được gọi là 
x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
3 và về cơ bản trông giống như một bảng. của chúng ta trông như thế nào?

print('Hello World!')
5

NămThứ hạngCông tyDoanh thu (triệu)Lợi nhuận (triệu)019551General Motors9823. 5806119552Exxon Mobil5661. 4584. 8219553U. S. Thép3250. 4195. 4319554Điện tổng hợp2959. 1212. 6419555Esmark2510. 819. 1

 

print('Hello World!')
6

NămThứ hạngCông tyDoanh thu (triệu)Lợi nhuận (triệu)254952005496Wm. Wrigley Jr. 3648. 6493254962005497Peabody Energy3631. 6175. 4254972005498Wendy's International3630. 457. 8254982005499Kindred Healthcare3616. 670. 6254992005500Cincinnati Financial3614. 0584

Trông được. Chúng tôi có các cột chúng tôi cần và mỗi hàng tương ứng với một công ty trong một năm

Hãy đổi tên các cột đó để chúng ta có thể tham khảo chúng sau này

print('Hello World!')
7

Tiếp theo, chúng ta cần khám phá tập dữ liệu của mình. Nó có đầy đủ không?

print('Hello World!')
8
print('Hello World!')
9

Được rồi, điều đó có vẻ tốt - đó là 500 hàng cho mỗi năm từ 1955 đến 2005, bao gồm cả

Hãy kiểm tra xem tập dữ liệu của chúng tôi đã được nhập như chúng tôi mong đợi chưa. Một kiểm tra đơn giản là xem liệu các kiểu dữ liệu (hoặc dtypes) đã được giải thích chính xác chưa

Hello World!
0_______11_______1

ồ ồ. Có vẻ như có điều gì đó không ổn với cột lợi nhuận — chúng tôi cho rằng cột đó sẽ là 

x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
4 giống như cột doanh thu. Điều này chỉ ra rằng nó có thể chứa một số giá trị không phải là số nguyên, vì vậy hãy xem

Hello World!
2

nămthứ hạngcông tydoanh thulợi nhuận2281955229Norton135. 0N. A. 2901955291Schlitz Brewing100. 0N. A. 2941955295Dầu thực vật Thái Bình Dương97. 9N. A. 2961955297Nhà máy bia Liebmann96. 0N. A. 3521955353 Minneapolis-Moline 77. 4N. A

Đúng như chúng tôi nghi ngờ. Một số giá trị là chuỗi, đã được sử dụng để biểu thị dữ liệu bị thiếu. Có bất kỳ giá trị nào khác đã len lỏi vào không?

Hello World!
3
Hello World!
4

Điều đó làm cho nó dễ hiểu, nhưng chúng ta nên làm gì?

Hello World!
5
Hello World!
6

Đó là một phần nhỏ trong tập dữ liệu của chúng tôi, mặc dù không hoàn toàn không quan trọng vì nó vẫn còn khoảng 1. 5%

Nếu các hàng chứa

x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
5 được phân bổ gần như đồng đều qua các năm, thì giải pháp đơn giản nhất là xóa chúng. Vì vậy, chúng ta hãy xem nhanh phân phối

Hello World!
7

Tôi có thể học Python trong Jupyter Notebook không?

Nhìn thoáng qua, chúng ta có thể thấy rằng các giá trị không hợp lệ nhất trong một năm là ít hơn 25 và vì có 500 điểm dữ liệu mỗi năm nên việc loại bỏ các giá trị này sẽ chiếm ít hơn 4% dữ liệu trong những năm tồi tệ nhất. Thật vậy, ngoài sự gia tăng đột biến vào khoảng những năm 90, hầu hết các năm đều có ít hơn một nửa giá trị còn thiếu của đỉnh

Đối với mục đích của chúng tôi, giả sử điều này có thể chấp nhận được và tiếp tục xóa các hàng này

Hello World!
8

Chúng ta nên kiểm tra xem nó có hoạt động không

print('Hello World!')
8
import time
time.sleep(3)
0
Hello World!
0
import time
time.sleep(3)
2

Tuyệt. Chúng tôi đã hoàn thành thiết lập bộ dữ liệu của mình

Nếu chúng tôi định trình bày sổ ghi chép của bạn dưới dạng báo cáo, thì chúng tôi có thể loại bỏ các ô điều tra mà chúng tôi đã tạo, được đưa vào đây để minh họa về quy trình làm việc với sổ ghi chép và hợp nhất các ô có liên quan (xem phần Chức năng nâng cao bên dưới để biết

Điều này có nghĩa là nếu chúng tôi làm hỏng bộ dữ liệu của mình ở nơi khác, chúng tôi chỉ cần chạy lại ô thiết lập để khôi phục nó

Vẽ đồ thị với matplotlib

Tiếp theo, chúng ta có thể giải quyết câu hỏi hiện tại bằng cách vẽ biểu đồ lợi nhuận trung bình theo năm. Chúng tôi cũng có thể vẽ biểu đồ doanh thu, vì vậy trước tiên chúng tôi có thể xác định một số biến và phương pháp để giảm mã của chúng tôi

import time
time.sleep(3)
3

Bây giờ chúng ta hãy âm mưu

import time
time.sleep(3)
4

Tôi có thể học Python trong Jupyter Notebook không?

Ồ, nó trông giống như một cấp số nhân, nhưng nó có một số mức giảm rất lớn. Chúng phải tương ứng với cuộc suy thoái đầu những năm 1990 và bong bóng dot-com. Thật thú vị khi thấy rằng trong dữ liệu. Nhưng làm thế nào mà lợi nhuận phục hồi lên mức thậm chí cao hơn sau mỗi cuộc suy thoái?

Có lẽ doanh thu có thể cho chúng tôi biết nhiều hơn

import time
time.sleep(3)
5

Tôi có thể học Python trong Jupyter Notebook không?

Điều đó thêm một khía cạnh khác cho câu chuyện. Doanh thu không bị ảnh hưởng nặng nề - đó là một số công việc kế toán tuyệt vời từ bộ phận tài chính

Với một chút trợ giúp từ Stack Overflow, chúng ta có thể chồng các biểu đồ này với +/- độ lệch chuẩn của chúng

import time
time.sleep(3)
6

Tôi có thể học Python trong Jupyter Notebook không?

Điều đó thật đáng kinh ngạc, độ lệch chuẩn là rất lớn. Một số công ty trong danh sách Fortune 500 kiếm được hàng tỷ đô la trong khi những công ty khác mất hàng tỷ đô la và rủi ro đã tăng lên cùng với lợi nhuận tăng lên trong những năm qua

Có lẽ một số công ty hoạt động tốt hơn những công ty khác;

Có rất nhiều câu hỏi mà chúng ta có thể xem xét tiếp theo và thật dễ dàng để thấy quy trình làm việc trên sổ ghi chép có thể phù hợp với quá trình suy nghĩ của chính một người như thế nào. Vì mục đích của hướng dẫn này, chúng tôi sẽ dừng phân tích tại đây, nhưng bạn có thể tự mình tiếp tục tìm hiểu dữ liệu

Quy trình này đã giúp chúng tôi dễ dàng điều tra tập dữ liệu của mình ở một nơi mà không cần chuyển đổi ngữ cảnh giữa các ứng dụng và công việc của chúng tôi có thể chia sẻ và tái sản xuất ngay lập tức. Nếu chúng tôi muốn tạo một báo cáo ngắn gọn hơn cho một đối tượng cụ thể, chúng tôi có thể nhanh chóng cấu trúc lại công việc của mình bằng cách hợp nhất các ô và xóa mã trung gian

Chia sẻ sổ ghi chép của bạn

Khi mọi người nói về việc chia sẻ sổ ghi chép của họ, thường có hai mô hình mà họ có thể cân nhắc

Thông thường, các cá nhân chia sẻ kết quả cuối cùng của công việc của họ, giống như chính bài viết này, có nghĩa là chia sẻ các phiên bản kết xuất trước, không tương tác của sổ ghi chép của họ. Tuy nhiên, cũng có thể cộng tác trên sổ ghi chép với sự trợ giúp của các hệ thống kiểm soát phiên bản như Git hoặc các nền tảng trực tuyến như Google Colab

Trước khi bạn chia sẻ

Sổ ghi chép được chia sẻ sẽ xuất hiện chính xác ở trạng thái khi bạn xuất hoặc lưu sổ ghi chép đó, bao gồm đầu ra của bất kỳ ô mã nào. Do đó, để đảm bảo rằng sổ ghi chép của bạn sẵn sàng chia sẻ, có thể nói như vậy, bạn nên thực hiện một số bước trước khi chia sẻ

  1. Nhấp vào “Ô > Tất cả đầu ra > Xóa”
  2. Nhấp vào “Kernel > Khởi động lại và chạy tất cả”
  3. Đợi các ô mã của bạn thực thi xong và kiểm tra xem đã chạy như mong đợi chưa

Điều này sẽ đảm bảo sổ ghi chép của bạn không chứa đầu ra trung gian, ở trạng thái cũ và thực thi theo thứ tự tại thời điểm chia sẻ

Xuất sổ ghi chép của bạn

Jupyter có hỗ trợ tích hợp để xuất sang HTML và PDF cũng như một số định dạng khác mà bạn có thể tìm thấy từ menu trong “Tệp > Tải xuống dưới dạng. ”

Nếu bạn muốn chia sẻ sổ ghi chép của mình với một nhóm nhỏ riêng tư, chức năng này có thể là tất cả những gì bạn cần. Thật vậy, vì nhiều nhà nghiên cứu trong các tổ chức học thuật được cung cấp một số không gian web công cộng hoặc nội bộ và vì bạn có thể xuất sổ ghi chép sang tệp HTML, Jupyter Notebook có thể là một cách đặc biệt thuận tiện để các nhà nghiên cứu chia sẻ kết quả của họ với đồng nghiệp.

Nhưng nếu việc chia sẻ các tệp đã xuất không phù hợp với bạn, thì cũng có một số phương pháp cực kỳ phổ biến để chia sẻ 

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
1 tệp trực tiếp hơn trên web

GitHub

Với số lượng sổ tay công khai trên GitHub vượt quá 1. 8 triệu vào đầu năm 2018, đây chắc chắn là nền tảng độc lập phổ biến nhất để chia sẻ các dự án Jupyter với thế giới. GitHub đã tích hợp hỗ trợ hiển thị các tệp 

def say_hello(recipient):
    return 'Hello, {}!'.format(recipient)

say_hello('Tim')
1 trực tiếp cả trong kho lưu trữ và ý chính trên trang web của mình. Nếu bạn chưa biết, GitHub là một nền tảng lưu trữ mã để kiểm soát phiên bản và cộng tác cho các kho lưu trữ được tạo bằng Git. Bạn sẽ cần một tài khoản để sử dụng dịch vụ của họ, nhưng tài khoản tiêu chuẩn thì miễn phí

Sau khi bạn có tài khoản GitHub, cách dễ nhất để chia sẻ sổ ghi chép trên GitHub hoàn toàn không yêu cầu Git. Kể từ năm 2008, GitHub đã cung cấp dịch vụ Gist để lưu trữ và chia sẻ các đoạn mã, mỗi đoạn mã có kho lưu trữ riêng. Cách chia sẻ sổ ghi chép bằng Gists

  1. Đăng nhập và điều hướng đến ý chính. github. com
  2. Mở tệp 
    def say_hello(recipient):
        return 'Hello, {}!'.format(recipient)
    
    say_hello('Tim')
    1 của bạn trong trình soạn thảo văn bản, chọn tất cả và sao chép JSON bên trong
  3. Dán sổ tay JSON vào ý chính
  4. Đặt tên cho tệp Gist của bạn, nhớ thêm 
    x = np.random.randint(1, 10)
    y = square(x)
    print('%d squared is %d' % (x, y))
    9 nếu không cách này sẽ không hiệu quả
  5. Nhấp vào “Tạo ý chính bí mật” hoặc “Tạo ý chính công khai. ”

Điều này sẽ trông giống như sau

Tôi có thể học Python trong Jupyter Notebook không?

Nếu bạn đã tạo một Gist công khai, giờ đây bạn có thể chia sẻ URL của nó với bất kỳ ai và những người khác sẽ có thể rẽ nhánh và sao chép tác phẩm của bạn

Tạo kho lưu trữ Git của riêng bạn và chia sẻ kho lưu trữ này trên GitHub nằm ngoài phạm vi của hướng dẫn này, nhưng GitHub cung cấp nhiều hướng dẫn để bạn tự bắt đầu

Một mẹo bổ sung cho những người sử dụng git là thêm một ngoại lệ vào 

1 squared is 1
0 của bạn đối với các thư mục 
x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
0 ẩn mà Jupyter tạo, để không chuyển các tệp điểm kiểm tra vào kho lưu trữ của bạn một cách không cần thiết

Nbviewer

Đã phát triển để kết xuất hàng trăm nghìn sổ ghi chép mỗi tuần vào năm 2015, NBViewer là trình kết xuất sổ ghi chép phổ biến nhất trên web. Nếu bạn đã có một nơi nào đó để lưu trữ Sổ ghi chép Jupyter của mình trực tuyến, có thể là GitHub hoặc nơi khác, NBViewer sẽ hiển thị sổ ghi chép của bạn và cung cấp một URL có thể chia sẻ cùng với nó. Được cung cấp dưới dạng dịch vụ miễn phí trong Project Jupyter, dịch vụ này có sẵn tại nbviewer. jupyter. tổ chức

Ban đầu được phát triển trước khi tích hợp Jupyter Notebook của GitHub, NBViewer cho phép mọi người nhập URL, ID Gist hoặc tên người dùng/repo/tệp GitHub và nó sẽ hiển thị sổ ghi chép dưới dạng trang web. ID của Gist là số duy nhất ở cuối URL của nó; . Nếu bạn nhập tên người dùng hoặc tên người dùng/repo GitHub, bạn sẽ thấy một trình duyệt tệp tối thiểu cho phép bạn khám phá kho lưu trữ của người dùng và nội dung của họ

URL mà NBViewer hiển thị khi hiển thị sổ ghi chép là một hằng số dựa trên URL của sổ ghi chép mà nó đang hiển thị, vì vậy bạn có thể chia sẻ URL này với bất kỳ ai và nó sẽ hoạt động miễn là các tệp gốc vẫn trực tuyến — NBViewer không lưu vào bộ nhớ cache các tệp cho lắm

Nếu bạn không thích Nbviewer, có các tùy chọn tương tự khác — đây là một chủ đề với một vài điều cần xem xét từ cộng đồng của chúng tôi

Tiện ích bổ sung. Tiện ích mở rộng máy tính xách tay Jupyter

Chúng tôi đã đề cập đến mọi thứ bạn cần để bắt đầu sử dụng Jupyter Notebooks

Tiện ích mở rộng là gì?

Các tiện ích mở rộng chính xác như tên gọi của chúng — các tính năng bổ sung giúp mở rộng chức năng của Jupyter Notebooks. Mặc dù Máy tính xách tay Jupyter cơ bản có thể làm được rất nhiều việc, nhưng các tiện ích mở rộng cung cấp một số tính năng bổ sung có thể trợ giúp cho các quy trình công việc cụ thể hoặc đơn giản là cải thiện trải nghiệm người dùng

Ví dụ: một tiện ích mở rộng có tên "Mục lục" sẽ tạo mục lục cho sổ ghi chép của bạn, để làm cho sổ ghi chép lớn dễ hình dung hơn và điều hướng xung quanh

Một cái khác, được gọi là Trình kiểm tra biến, sẽ hiển thị cho bạn giá trị, loại, kích thước và hình dạng của mọi biến trong sổ ghi chép của bạn để dễ dàng tham khảo và gỡ lỗi nhanh

Một cái khác, được gọi là ExecuteTime, cho bạn biết khi nào và trong bao lâu mỗi ô chạy — điều này có thể đặc biệt thuận tiện nếu bạn đang cố gắng tăng tốc một đoạn mã của mình

Đây chỉ là phần nổi của tảng băng chìm;

Bạn có thể lấy tiện ích mở rộng ở đâu?

Để có được các tiện ích mở rộng, bạn cần cài đặt Nbextensions. Bạn có thể làm điều này bằng cách sử dụng pip và dòng lệnh. Nếu bạn có Anaconda, có thể tốt hơn là thực hiện việc này thông qua Dấu nhắc Anaconda thay vì dòng lệnh thông thường

Đóng Jupyter Notebooks, mở Anaconda Prompt và chạy lệnh sau.

1 squared is 1
3

Khi bạn đã hoàn thành việc đó, hãy khởi động sổ ghi chép và bạn sẽ thấy tab Nbextensions. Nhấp vào tab này sẽ hiển thị cho bạn danh sách các tiện ích mở rộng có sẵn. Chỉ cần đánh dấu vào các ô cho các tiện ích mở rộng bạn muốn bật và bạn đã sẵn sàng tham gia cuộc đua

Cài đặt tiện ích mở rộng

Khi bản thân Nbextensions đã được cài đặt, không cần cài đặt thêm từng tiện ích mở rộng. Tuy nhiên, nếu bạn đã cài đặt Nbextensons nhưng không thấy tab, thì bạn không đơn độc. Chủ đề này trên Github nêu chi tiết một số vấn đề và giải pháp phổ biến

Tiện ích bổ sung. Phép thuật dòng trong Jupyter

Chúng tôi đã đề cập đến các lệnh ma thuật trước đó khi chúng tôi sử dụng

1 squared is 1
4 để tạo biểu đồ Matplotlib hiển thị ngay trong sổ ghi chép của mình. Có nhiều phép thuật khác chúng ta cũng có thể sử dụng

Cách sử dụng phép thuật trong Jupyter

Bước đầu tiên tốt là mở Jupyter Notebook, nhập

1 squared is 1
5 vào một ô và chạy ô đó. Điều này sẽ xuất ra một danh sách các phép thuật dòng và phép thuật ô có sẵn, đồng thời nó cũng sẽ cho bạn biết liệu "tự động" có được bật hay không

  • Phép thuật dòng hoạt động trên một dòng của ô mã
  • Phép thuật ô hoạt động trên toàn bộ ô mã mà chúng được gọi

Nếu bật phép thuật tự động, bạn có thể chạy một phép thuật đơn giản bằng cách nhập phép thuật đó vào dòng riêng của nó trong một ô mã và chạy ô đó. Nếu tính năng này đang tắt, bạn cần phải đặt  

1 squared is 1
6 trước các phép thuật dòng và  
1 squared is 1
7  trước các phép thuật ô để sử dụng chúng

Nhiều phép thuật yêu cầu đầu vào bổ sung (giống như một chức năng yêu cầu một đối số) để cho chúng biết cách hoạt động. Chúng ta sẽ xem xét một ví dụ trong phần tiếp theo, nhưng bạn có thể xem tài liệu về bất kỳ phép thuật nào bằng cách chạy nó với một dấu chấm hỏi, như vậy

import time
time.sleep(3)
7

Khi bạn chạy ô trên trong sổ ghi chép, một chuỗi tài liệu dài sẽ bật lên trên màn hình với thông tin chi tiết về cách bạn có thể sử dụng phép thuật

Một vài lệnh ma thuật hữu ích

Chúng tôi đề cập nhiều hơn trong hướng dẫn Jupyter nâng cao, nhưng đây là một số hướng dẫn để bạn bắt đầu

Magic CommandNó làm gì%runChạy một tập lệnh bên ngoài như một phần của ô đang được thực thi

 

Ví dụ, nếu %run myscript. py xuất hiện trong một ô mã, myscript. py sẽ được kernel thực thi như một phần của ô đó

%timeitCounts vòng lặp, đo lường và báo cáo thời gian thực thi của một ô mã. %writefileLưu nội dung của một ô vào một tập tin

 

Ví dụ: %savefile myscript. py sẽ lưu ô mã dưới dạng một tệp bên ngoài có tên là myscript. py

%storeLưu một biến để sử dụng trong sổ ghi chép khác. %pwdPrint đường dẫn thư mục bạn đang làm việc trong đó. %%javascriptChạy ô dưới dạng mã JavaScript

Còn nhiều điều nữa đến từ đâu. Nhảy vào Jupyter Notebooks và bắt đầu khám phá bằng cách sử dụng

1 squared is 1
5

Suy nghĩ cuối cùng

Bắt đầu lại từ đầu, chúng tôi đã nắm bắt được quy trình làm việc tự nhiên của Jupyter Notebooks, đào sâu vào các tính năng nâng cao hơn của IPython và cuối cùng đã học được cách chia sẻ công việc của chúng tôi với bạn bè, đồng nghiệp và thế giới. Và chúng tôi đã hoàn thành tất cả điều này từ chính một cuốn sổ tay

Rõ ràng là cách sổ tay thúc đẩy trải nghiệm làm việc hiệu quả bằng cách giảm chuyển đổi ngữ cảnh và mô phỏng sự phát triển tự nhiên của suy nghĩ trong một dự án. Sức mạnh của việc sử dụng Máy tính xách tay Jupyter cũng nên rõ ràng và chúng tôi đã đề cập đến rất nhiều khách hàng tiềm năng để giúp bạn bắt đầu khám phá các tính năng nâng cao hơn trong các dự án của riêng mình

Nếu bạn muốn có thêm cảm hứng cho Sổ tay của riêng mình, Jupyter đã tổng hợp một bộ sưu tập Sổ tay Jupyter thú vị mà bạn có thể thấy hữu ích và trang chủ Nbviewer liên kết đến một số ví dụ thực sự thú vị về sổ tay chất lượng

Nếu bạn muốn tìm hiểu thêm về chủ đề này, hãy xem khóa học Hàm Python tương tác và Tìm hiểu Jupyter Notebook của Dataquest và các đường dẫn Nhà phân tích dữ liệu bằng Python và Nhà khoa học dữ liệu trong Python của chúng tôi sẽ giúp bạn sẵn sàng cho công việc trong khoảng 6 tháng

Thêm tài nguyên máy tính xách tay Jupyter tuyệt vời

  • Hướng dẫn nâng cao về Jupyter Notebooks – Bây giờ bạn đã nắm vững kiến ​​thức cơ bản, hãy trở thành một Jupyter Notebooks chuyên nghiệp với hướng dẫn nâng cao này
  • 28 Mẹo, Thủ thuật và Lối tắt dành cho Jupyter Notebook – Hãy biến mình thành một người sử dụng thành thạo và nâng cao hiệu quả của bạn bằng những mẹo và thủ thuật này
  • Dự án có Hướng dẫn – Cài đặt và Tìm hiểu Jupyter Notebooks – Tạo cho bạn một nền tảng tuyệt vời khi làm việc với Jupyter Notebooks bằng cách làm việc thông qua dự án có hướng dẫn tương tác này sẽ giúp bạn thiết lập và hướng dẫn bạn các kỹ năng

beginnerJupyterjupyter notebooksLearn PythonPandaspythontutorialTutorials

Giới thiệu về tác giả

Benjamin Pryke

Python và nhà phát triển web có nền tảng về khoa học máy tính và máy học. Đồng sáng lập công ty FinTech Machina Capital. Vận động viên thể dục dụng cụ bán thời gian và phóng túng kỹ thuật số

Jupyter Notebook có tốt cho việc học không?

Hầu hết các khóa học trực tuyến về khoa học dữ liệu đều sử dụng Jupyter Notebook làm phương tiện giảng dạy . Điều này có ý nghĩa bởi vì người mới bắt đầu viết mã trong các ô của Jupyter Notebook sẽ dễ dàng hơn là viết một tập lệnh với các lớp và hàm.

Sử dụng Jupyter Notebook hay Python tốt hơn?

Bản chất lặp đi lặp lại và khám phá của Jupyter Notebooks đã biến chúng thành một mặt hàng chủ lực trong lĩnh vực khoa học dữ liệu. Trên thực tế, nhiều nhà khoa học dữ liệu thích làm việc với Jupyter Notebooks vì việc kiểm tra ý tưởng, tạo nguyên mẫu và chia sẻ kết quả với đồng nghiệp dễ dàng hơn .

Jupyter Notebook có giống với Python không?

Python là một ngôn ngữ lập trình, mặt khác Jupyter Notebook là một IDE. Chúng tôi viết mã của mình bằng python. Jupyter Notebook là một IDE hỗ trợ nhiều ngôn ngữ khác nhau như python, R, Julia, Scala, v.v. Nó chủ yếu được sử dụng trong Khoa học dữ liệu và Học máy