آموزش Jupyter Notebook | مهدی مشایخی

ژوپیتر | مهدی مشایخی
ژوپیتر | مهدی مشایخی

نوت بوک ژوپیتر چیست؟

ژوپیتر نوت بوک Jupyter Notebook یک ابزار فوق العاده قدرتمند برای توسعه تعاملی و ارائه پروژه های علم داده است. در این مقاله نحوه استفاده از نوت بوک های Jupyter برای پروژه های علم داده ، ماشین لرنینگ و نحوه راه اندازی آن را در کامپیوتر محلی خود به شما آموزش می دهیم.

اول : "نوت بوک" چیست؟

یک نوت بوک کد و خروجی آن را در یک سند ادغام می کند که تجسم ها، متن روایت، معادلات ریاضی و سایر رسانه های غنی را ترکیب می کند. به عبارت دیگر: این یک سند واحد است که در آن می‌توانید کد را اجرا کنید، خروجی را نمایش دهید و همچنین توضیحات، فرمول‌ها، نمودارها را اضافه کنید و کار خود را شفاف‌تر، قابل فهم‌تر، تکرارپذیرتر و قابل اشتراک‌گذاری کنید.

استفاده از نوت بوک در حال حاضر بخش عمده ای از گردش کار علم داده در شرکت ها در سراسر جهان است. اگر هدف شما کار با داده است، استفاده از نوت بوک گردش کار شما را سرعت می بخشد و برقراری ارتباط و به اشتراک گذاری نتایج را آسان تر می کند.

ژوپیتر نوت بوک یا همون جوپیتر که به دو صورت تلفظ میشه رو میتونید به رایگان به دو صورت استفاده کنید. می توانید نرم افزار  را به تنهایی یا به عنوان بخشی از جعبه ابزار علم داده آناکوندا دانلود کنید.

اگر چیزی از آناکوندا نمیدونید میتونید با کلیک روی این بخش اون مقاله رو بخونید و آناکوندا را نصب کنید.

اگرچه استفاده از زبان های برنامه نویسی مختلف در نوت بوک های ژوپیتر امکان پذیر است، اما این مقاله بر پایتون تمرکز خواهد کرد، زیرا رایج ترین مورد استفاده است.

پیش نیاز قبلی ؟!

برای استفاده حداکثری و کامل از این آموزش، باید با برنامه نویسی پایتون به طور نسبی آشنا باشید . قابل ذکره هست، اگر با زبان دیگری تجربه دارید، پایتون در این مقاله نباید خیلی پیچیده باشه و همچنان به شما کمک می کند تا Jupyter Notebooks را به صورت محلی تنظیم (روی کامپیوتر خود) کنید.

همانطور که در این آموزش مشخص خواهد شد، نوت بوک های Jupyter همچنین می توانند به عنوان یک پلت فرم انعطاف پذیر برای مقابله با کتابخانه های پایتون و حتی خود پایتون عمل کنند.

ما در این آموزش یاد خواهیم گرفت:

  • اصول اولیه نصب Jupyter و ایجاد اولین نوت بوک خود
  • یادگیری عنیق تر ژوپیتر و اصطلاحات اون
  • اشتراک و منتشر کردن ژوپیتر به راحتی
اکثر آموزش های برنامه نویس و هوش مصنوعی با ژوپیتر ایجاد و منتشر می شوند پس این آموزش رو دست کم نگیرید!

نصب و راه اندازی

ساده ترین راه برای یک مبتدی برای شروع با نوت بوک های Jupyter، نصب  Anaconda است.

آناکوندا Anaconda پرکاربردترین توزیع پایتون برای علم داده است و با همه کتابخانه ها و ابزارهای محبوب از قبل بارگذاری شده است.

برخی از بزرگ‌ترین کتابخانه‌های پایتون موجود در آناکوندا شامل NumPy ،  پانداها و  Matplotlib هستند، اگرچه  فهرست کامل این مجموعه بیشتر از 1000 تا هست.

برای دریافت آناکوندا، به سادگی:

  1. آخرین نسخه Anaconda را برای Python دانلود کنید .
  2. آناکوندا را با دنبال کردن دستورالعمل‌های موجود در صفحه دانلود و یا در فایل اجرایی نصب کنید.
اگر کاربر پیشرفته‌تری هستید که پایتون قبلاً نصب شده است و ترجیح می‌دهید بسته‌های خود را به صورت دستی مدیریت کنید، فقط می‌توانید از pip استفاده کنید ، این دستوارت رو میتونید داخل محیط CMD تایپ کنید.
pip3 install jupyter

ایجاد اولین نوت بوک

در این بخش، ما می خواهیم یاد بگیریم که نوت بوک ها را اجرا و ذخیره کنیم، با ساختار آنها آشنا شویم و رابط کاربری را درک کنیم. ما با برخی اصطلاحات اصلی آشنا خواهیم شد که شما را به درک عملی از نحوه استفاده از نوت بوک های Jupyter توسط خودتان کمک می کند.

اجرای ژوپیتر

در ویندوز، می‌توانید Jupyter را از طریق میانبری که Anaconda به منوی استارت اضافه می‌کند یا میتونید آناکوندا رو سرچ کنید و اجرا کنید، که یک برگه جدید در مرورگر وب پیش‌فرض شما باز می‌کند که باید چیزی شبیه به تصویر زیر باشد.

این هنوز یک نوت بوک نیست! چیز زیادی وجود ندارد. این داشبورد نوت بوک است که به طور خاص برای مدیریت نوت بوک های Jupyter شما طراحی شده است. آن را به عنوان سکوی راه اندازی برای کاوش، ادیت و ایجاد نوت بوک خود در نظر بگیرید.

توجه داشته باشید که داشبورد فقط به فایل‌ها و پوشه‌های فرعی موجود در فهرست راه‌اندازی Jupyter (یعنی جایی که Jupyter یا Anaconda نصب شده است) دسترسی خواهید داشت. با این حال، فهرست راه اندازی را می توان تغییر داد.

همچنین می توان این صفحه رو در هر سیستمی از طریق خط فرمان (یا ترمینال در سیستم های یونیکس) با وارد کردن دستور راه اندازی کرد jupyter notebook در این حالت، دایرکتوری کاری فعلی، دایرکتوری راه اندازی خواهد بود.

با باز کردن Jupyter Notebook در مرورگر خود، ممکن است متوجه شده باشید که URL داشبورد چیزی شبیه به یک وب سایت نیست، اما نشان می دهد که محتوا از  دستگاه محلی شما  ارائه می شود. (رایانه شخصی شما)

https://localhost:8888/tree

نوت‌بوک‌ها و داشبورد Jupyter برنامه‌های وب هستند، و Jupyter یک سرور محلی Python راه‌اندازی می‌کند تا این برنامه‌ها را به مرورگر وب شما ارائه دهد، که اساساً آن را مستقل از پلتفرم می‌کند و دری را برای اشتراک‌گذاری آسان‌تر در وب باز می‌کند.

(اگر هنوز متوجه نشده اید، نگران نباشید نکته مهم فقط این است که اگرچه Jupyter Notebooks در مرورگر شما باز می شود، اما در دستگاه محلی شما میزبانی می شود و اجرا می شود. نوت بوک های شما در واقع در وب نیستند تا زمانی که شما تصمیم بگیرید که آنها را به اشتراک بگذارید.

به پوشه ای که می خواهید اولین نوت بوک خود را در آن ایجاد کنید، بروید یا در همان مکانی که هستید ، روی دکمه کشویی «جدید» در بالا سمت راست کلیک کنید و «Python 3» را انتخاب کنید:

اولین نوت بوک Jupyter شما در تب جدید باز می شود ، هر نوت بوک از تب مخصوص به خود استفاده می کند و شما میتونید چندین نوت بوک را به طور همزمان باز کنید.

اگر به داشبورد برگردید، فایل جدید را خواهید دید Untitled.ipynb و باید مقداری متن سبز رنگ را مشاهده کنید که به شما می گوید نوت بوک شما در حال اجرا است.

فایل ipynb چیست؟

هر ipynbفایل یک نوت بوک است، بنابراین هر بار که یک نوت بوک جدید ایجاد می کنید، یک   .ipynbفایل جدید ایجاد می شود.

درواقع هر ipynb فایل یک فایل متنی است که محتویات نوت بوک شما را در قالبی به نام  JSON توصیف می کند. هر سلول و محتویات آن، از جمله پیوست‌های تصویری که به رشته‌های متنی تبدیل شده‌اند، همراه با برخی فراداده در آن فهرست شده‌اند .

شما می توانید این را خودتان ادیت کنید با انتخاب «Edit > Edit Notebook Metadata» از نوار منو در نوت بوک. همچنین می‌توانید با انتخاب «ادیت» از کنترل‌های روی داشبورد، محتویات فایل‌های نوت‌بوک خود را مشاهده کنید.

با این حال، کلمه کلیدی وجود دارد می تواند. در بیشتر موارد، هیچ دلیلی وجود ندارد که هرگز نیاز به ویرایش متادیتای نوت بوک خود به صورت دستی داشته باشید.

رابط نوت بوک

اکنون که یک نوت بوک باز در مقابل خود دارید، امیدواریم رابط کاربری آن کاملاً سخت به نظر نرسد. از این گذشته، Jupyter در اصل فقط یک واژه پرداز پیشرفته است.

چرا نگاهی به اطراف نمیکنی؟ منوها را بررسی کنید تا احساسی نسبت به آن داشته باشید، به خصوص چند لحظه برای اسکرول کردن لیست دستورات در پالت فرمان، که دکمه کوچکی با نماد صفحه کلید (یا Ctrl + Shift + P) است، وقت بگذارید.

دو عبارت نسبتاً برجسته وجود دارد که باید به آنها توجه کنید، که احتمالاً برای شما جدید هستند:  سلول‌ها  و  کرنل ها  

  • کرنل یک "موتور محاسباتی" است که کدهای موجود در یک سند نوت بوک را اجرا می کند.
  • سلول محفظه ای برای متنی است که باید در نوت بوک نمایش داده شود یا کدی که باید توسط هسته نوت بوک اجرا شود.

سلول ها

سلول ها بدنه یک دفترچه یادداشت را تشکیل می دهند. در اسکرین شات یک نوت بوک جدید در بخش بالا، آن کادر با طرح کلی سبز یک سلول خالی است. دو نوع سلول اصلی وجود دارد که به آنها خواهیم پرداخت:

  • یک  سلول کد حاوی کدی است که باید در هسته اجرا شود. هنگامی که کد اجرا می شود، نوت بوک خروجی را در زیر سلول کدی که آن را تولید کرده است نمایش می دهد.
  • یک  سلول Markdown حاوی متنی است که با استفاده از Markdown قالب‌بندی شده است و خروجی آن را در زمان اجرای سلول Markdown نمایش می‌دهد.

اولین سلول در یک نوت بوک جدید همیشه یک سلول کد است.

بیایید آن را با یک مثال قدیمی hello world آزمایش کنیم: print('Hello World!') در سلول تایپ کنید و روی دکمه run  در نوار ابزار بالا کلیک کنید یا   Ctrl + Enterرا فشار دهید.

نتیجه باید به این صورت باشد:

print('Hello World!')
Hello World!

وقتی سلول را اجرا می کنیم، خروجی آن در زیر نمایش داده می شود و برچسب سمت چپ آن از In [ ] به  In [1].

خروجی یک سلول کد نیز بخشی از سند را تشکیل می دهد، به همین دلیل است که می توانید آن را در این مقاله مشاهده کنید. شما همیشه می توانید تفاوت بین کد و سلول های Markdown را تشخیص دهید زیرا سلول های کد آن برچسب را در سمت چپ دارند و سلول های Markdown این برچسب را ندارند.

قسمت "In" برچسب به سادگی مخفف "Input" است، در حالی که شماره برچسب نشان می دهد که سلول در هسته اجرا شده است - در این مورد سلول ابتدا اجرا شده است.

سلول را دوباره اجرا کنید و برچسب به تغییر خواهد کرد In [2] زیرا اکنون سلول دومین سلولی بود که روی هسته اجرا می شد. وقتی به هسته‌ها (کرنل ها) نگاهی دقیق‌تر بیندازیم، مشخص‌تر می‌شود که چرا این بسیار مفید است.

از نوار منو، روی  Insert کلیک کنید  و  Insert Cell Below  را انتخاب کنید تا یک سلول کد جدید در زیر اولین کد خود ایجاد کنید و کد زیر را امتحان کنید تا ببینید چه اتفاقی می‌افتد. آیا متوجه چیز متفاوتی می شوید؟

import time
time.sleep(3)

این سلول هیچ خروجی تولید نمی کند، اما سه ثانیه طول می کشد تا اجرا شود. توجه کنید که Jupyter چگونه نشان می دهد که سلول در حال حاضر با تغییر برچسب آن به In [*].

به طور کلی، خروجی یک سلول از هر داده متنی که به طور خاص در طول اجرای سلول چاپ شده است، و همچنین مقدار آخرین خط در سلول، خواه یک متغیر تک، یک فراخوانی تابع یا چیز دیگری باشد، می آید. مثلا:

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

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

شما متوجه خواهید شد که تقریباً دائماً از این در پروژه های خود استفاده می کنید و بعداً شاهد موارد بیشتری از آن خواهیم بود.

کلید های میانبر صفحه کلید

آخرین نکته ای که ممکن است هنگام اجرای سلول های خود مشاهده کرده باشید این است که مرز آنها آبی می شود، در حالی که در هنگام ویرایش سبز بود. در یک نوت بوک Jupyter، همیشه یک سلول "فعال" با حاشیه ای وجود دارد که رنگ آن نشان دهنده حالت فعلی آن است:

  • طرح کلی سبز - سلول در "حالت ویرایش" است
  • طرح کلی آبی - سلول در "حالت فرمان" است

پس وقتی سلول در حالت فرمان است، چه کاری می توانیم انجام دهیم؟ تا به حال، نحوه اجرای یک سلول با را دیده ایم  Ctrl + Enter، اما دستورات زیادی وجود دارد که می توانیم از آنها استفاده کنیم. بهترین راه برای استفاده از آنها میانبرهای صفحه کلید است

میانبرهای صفحه کلید یکی از جنبه‌های بسیار محبوب محیط Jupyter هستند زیرا گردش کار مبتنی بر سلول را تسهیل می‌کنند. بسیاری از اینها اقداماتی هستند که می توانید در سلول فعال زمانی که در حالت فرمان است انجام دهید.

در زیر، فهرستی از میانبرهای صفحه کلید Jupyter را مشاهده خواهید کرد. لازم نیست فوراً همه آنها را به خاطر بسپارید، اما این فهرست باید به شما ایده خوبی از آنچه ممکن است ارائه دهد.

  • بین حالت ویرایش و فرمان به ترتیب با  Esc و  Enterتغییر دهید.
  • یک بار در حالت فرمان:سلول های خود را با کلیدهای Up و  خود به بالا و پایین اسکرول کنید  .Down
    A یا  را برای  B درج یک سلول جدید در بالا یا پایین سلول فعال فشار دهید.
    M سلول فعال را به یک سلول Markdown تبدیل می کند.
    Y سلول فعال را روی یک سلول کد تنظیم می کند.
    D + D ( D دوبار) سلول فعال را حذف می کند.
    Z حذف سلول را لغو می کند.
  • در حالت ویرایش، سلول فعال را در مکان نما تقسیم می کند. Ctrl + Shift + -
  • همچنین می‌توانید روی و  Shift + Click در حاشیه سمت چپ سلول‌های خود کلیک کنید تا آنها را انتخاب کنید.

ادامه دهید و اینها را در نوت بوک خود امتحان کنید. هنگامی که آماده شدید، یک سلول Markdown جدید ایجاد کنید.

مارک داون | Markdown

مارک داون یک زبان نشانه گذاری سبک و آسان برای قالب بندی متن ساده است. نحو آن با تگ های HTML مطابقت یک به یک دارد، بنابراین دانش قبلی در اینجا مفید خواهد بود، اما قطعا پیش نیاز نیست.

به یاد داشته باشید که این مقاله در یک دفترچه یادداشت Jupyter نوشته شده است، بنابراین تمام متن های روایی و تصاویری که تاکنون دیده اید در Markdown نوشته شده اند. اجازه دهید اصول اولیه را با یک مثال سریع پوشش دهیم:

# 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)

هنگامی که سلول را اجرا می کنید تا اجرا شود به شکل زیر در می آید چون یک Markdown هست!

هنگام پیوست کردن تصاویر، سه گزینه دارید:

  • از یک URL برای یک تصویر در وب استفاده کنید.
  • از یک URL محلی برای تصویری که در کنار نوت بوک خود نگهداری می کنید استفاده کنید، مثلاً در همان git repo.
  • از طریق «Edit > Insert Image» یک پیوست اضافه کنید. این تصویر را به یک رشته تبدیل می کند و آن را در  .ipynbفایل نوت بوک شما ذخیره می کند. توجه داشته باشید که این کار فایل شما .ipynb را بسیار بزرگ می کند!

چیزهای بیشتری برای Markdown وجود دارد، به خصوص در مورد هایپرلینک، و همچنین می توان به سادگی HTML ساده را در آن گنجاند..

هسته ها | کرنل ها

پشت هر نوت بوک یک هسته وجود دارد. هنگامی که یک سلول کد را اجرا می کنید، آن کد در هسته اجرا می شود. هر خروجی برای نمایش به سلول برمی گردد. وضعیت هسته در طول زمان و بین سلول‌ها باقی می‌ماند این به کل سند مربوط می‌شود و نه سلول‌های جداگانه.

به عنوان مثال، اگر کتابخانه ها را وارد کنید یا متغیرها را در یک سلول اعلام کنید، آنها در سلول دیگر در دسترس خواهند بود. بیایید این را امتحان کنیم تا احساسی نسبت به آن داشته باشیم. ابتدا یک بسته پایتون را وارد می کنیم و یک تابع تعریف می کنیم:

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

هنگامی که سلول بالا را اجرا کردیم، می توانیم به هر سلول دیگری ارجاع np دهیم  .square

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

این بدون در نظر گرفتن ترتیب سلول های نوت بوک شما کار خواهد کرد. تا زمانی که یک سلول اجرا شده باشد، هر متغیری که اعلام کرده‌اید یا کتابخانه‌هایی که وارد کرده‌اید در سلول‌های دیگر در دسترس خواهند بود.

می توانید خودتان آن را امتحان کنید، بیایید دوباره متغیرهای خود را چاپ کنیم.

print('Is %d squared %d?' % (x, y))
Is 1 squared 1?

اینجا جای تعجب نیست! اما اگر مقدار آن را تغییر دهیم چه اتفاقی می افتد؟

y = 10
print('Is %d squared is %d?' % (x, y))

اگر سلول بالا را اجرا کنیم، فکر می کنید چه اتفاقی می افتد؟

خروجی ای مانند:  Is 4 squared 10?. y = 10این به این دلیل است که وقتی سلول کد را اجرا کردیم  ، yدیگر با مربع x در هسته برابر نیست.

در بیشتر مواقع هنگام ایجاد یک نوت بوک، جریان از بالا به پایین خواهد بود. اما بازگشت برای ایجاد تغییرات معمول است. وقتی نیاز به ایجاد تغییراتی در سلول قبلی داریم، ترتیب اجرای که می‌توانیم در سمت چپ هر سلول ببینیم، مانند In [6]می‌تواند به ما کمک کند تا با دیدن اینکه سلول‌ها به چه ترتیبی اجرا شده‌اند، مشکلات را تشخیص دهیم.

و اگر بخواهیم چیزها را بازنشانی کنیم، چندین گزینه فوق العاده مفید از منوی کرنل وجود دارد:

  • هسته را مجدداً راه اندازی می کند، بنابراین تمام متغیرهای تعریف شده و غیره را پاک می کند : Restart
  • همانند بالا، اما خروجی نمایش داده شده در زیر سلول های کد شما را نیز پاک می کند : Restart & Clear Output
  • مانند بالا اما تمام سلول های شما را نیز به ترتیب از اول تا آخر اجرا می کند: Restart & Run All: Restart & Run All

اگر هسته شما روی یک محاسبات گیر کرده است و می خواهید آن را متوقف کنید، می توانید گزینه Interrupt را انتخاب کنید.

انتخاب هسته

شاید متوجه شده باشید که Jupyter به شما امکان تغییر هسته را می دهد و در واقع گزینه های مختلفی برای انتخاب وجود دارد. زمانی که با انتخاب نسخه پایتون یک نوت بوک جدید از داشبورد ایجاد می کردید، در واقع انتخاب می کردید که از کدام هسته استفاده کنید.

هسته هایی برای نسخه های مختلف پایتون و همچنین برای بیش از 100 زبان  از جمله جاوا، سی و حتی فرترن وجود دارد. دانشمندان داده ممکن است به‌خصوص به هسته‌های  R  و  Julia و همچنین  هسته‌های imatlab  و  Calysto MATLAB  برای Matlab علاقه‌مند باشند.

هسته SoS پشتیبانی چند زبانه را در یک نوت بوک فراهم می کند.

هر هسته دستورالعمل‌های نصب خاص خود را دارد، اما احتمالاً از شما می‌خواهد که برخی از دستورات را در رایانه خود اجرا کنید.

نام گذاری نوت بوک های خود

قبل از شروع نوشتن پروژه خود، احتمالاً می خواهید نامی معنی دار برای آن بگذارید. نام فایل Untitledدر سمت چپ بالای صفحه برای وارد کردن نام فایل جدید، و روی نماد ذخیره (که شبیه فلاپی دیسک است) در زیر آن ضربه بزنید تا ذخیره شود.

توجه داشته باشید که بستن برگه نوت بوک در مرورگر شما، نوت بوک شما را به همان صورتی که یک سند در یک برنامه سنتی بسته می شود، نمی بندد. هسته نوت‌بوک در پس‌زمینه به کار خود ادامه می‌دهد و قبل از اینکه واقعاً «بسته شود» باید خاموش شود - اگرچه اگر به‌طور تصادفی برگه یا مرورگر خود را ببندید، بسیار خوب است!

اگر هسته بسته شود، می توانید بدون نگرانی در مورد اینکه آیا هنوز در حال اجرا است یا نه، برگه را ببندید.

ساده ترین راه برای انجام این کار این است که "File > Close and Halt" را از منوی نوت بوک انتخاب کنید. با این حال، می‌توانید با رفتن به «Kernel > Shutdown» از داخل برنامه نوت‌بوک یا با انتخاب نوت‌بوک در داشبورد و کلیک کردن روی «Shutdown»، هسته را خاموش کنید (تصویر زیر را ببینید).

ذخیره کردن نوت بوک و بازرسی

با فشار دادن  Ctrl + S، نوت بوک ما با فراخوانی "Save and Checkpoint" داده های ما رو ذخیره می کنه، اما این چیزی که در چک پوینت هست چی هست؟

هر بار که یک نوت بوک جدید ایجاد می کنیم، یک فایل چک پوینت به همراه فایل نوت بوک ایجاد می شود. این در یک زیر شاخه مخفی از مکان ذخیره شما به نام قرار .ipynb_checkpoints دارد و همچنین یک  .ipynb فایل است.

به‌طور پیش‌فرض، Jupyter نوت‌بوک شما را هر 120 ثانیه بدون تغییر فایل نوت‌بوک اولیه، به‌طور خودکار در این فایل چک می‌کند. وقتی «ذخیره و نقطه بازرسی» را انجام می‌دهید، فایل‌های نوت‌بوک و پست بازرسی به‌روزرسانی می‌شوند. از این رو، ایست بازرسی به شما امکان می دهد در صورت بروز مشکل غیرمنتظره، کار ذخیره نشده خود را بازیابی کنید.

می‌توانید از طریق «File > Revert to Checkpoint» از منو به چک پوینت برگردید.

نمونه نقشه پلات ها با matplotlib

در زیر میتونید بخشی از پلات هایی که در خروجی ژوپیتر به ما میده رو مشاهده کنید که به چه صورت هست.


به اشتراک گذاری نوت بوک های خود

وقتی مردم در مورد اشتراک‌گذاری نوت‌بوک‌هایشان صحبت می‌کنند، معمولاً دو نظر وجود دارد که ممکن است داشته باشند.

اغلب، افراد نتیجه نهایی کار خود را به اشتراک می گذارند، دقیقاً مانند خود این مقاله، که به معنای به اشتراک گذاری نسخه های غیر تعاملی و از پیش رندر شده نوت بوک هایشان است. با این حال، امکان همکاری در نوت‌بوک‌ها با کمک سیستم‌های کنترل نسخه مانند Git یا پلتفرم‌های آنلاین مانند Google Colab نیز وجود دارد.

قبل از اینکه به اشتراک بگذارید

یک نوت بوک مشترک دقیقاً در حالتی ظاهر می‌شود که هنگام خروجی یا ذخیره آن، از جمله خروجی سلول‌های کد، ظاهر می‌شود. بنابراین، برای اطمینان از اینکه نوت بوک شما آماده اشتراک گذاری است، به اصطلاح، چند مرحله وجود دارد که باید قبل از اشتراک گذاری انجام دهید:

  1. روی «Cell > All Output > Clear» کلیک کنید
  2. روی «Kernel > Restart & Run All» کلیک کنید
  3. منتظر بمانید تا سلول‌های کد شما اجرا شوند و همانطور که انتظار می‌رود بررسی کنید

این نشون میده که نوت‌بوک‌های شما دارای خروجی واسطه نباشند، حالت قدیمی داشته باشند و در زمان اشتراک‌گذاری به ترتیب اجرا شوند.

اشتراک نوت بوک شما

ژوپیتر Jupyter دارای پشتیبانی داخلی برای اکسپرت به HTML و PDF و همچنین چندین فرمت دیگر است که می توانید آنها را از منوی "File > Download As" پیدا کنید.

اگر می‌خواهید نوت‌بوک‌های خود را با یک گروه خصوصی کوچک به اشتراک بگذارید، این قابلیت ممکن است تمام چیزی باشد که نیاز دارید. در واقع، از آنجایی که به بسیاری از محققان در مؤسسات دانشگاهی فضای وب عمومی یا داخلی داده می‌شود، و از آنجایی که می‌توانید یک دفترچه یادداشت را به یک فایل HTML تبدیل کنید، نوت‌بوک‌های Jupyter می‌توانند روشی مناسب برای محققان برای به اشتراک گذاشتن نتایج خود با همتایان خود باشند.

گیت هاب | GitHub

با  تعداد نوت‌بوک‌های عمومی GitHub  تا اوایل سال 2018 از 1.8 میلیون، مطمئناً محبوب‌ترین پلتفرم مستقل برای اشتراک‌گذاری پروژه‌های Jupyter با جهان است. GitHub پشتیبانی یکپارچه ای برای رندر کردن  .ipynb فایل ها به طور مستقیم هم در مخازن و هم در کلیات وب سایت خود دارد. اگر قبلاً نمی دانید،  GitHub  یک پلت فرم میزبان کد برای کنترل نسخه و همکاری برای مخازن ایجاد شده با  Git است. برای استفاده از خدمات آنها به یک حساب کاربری نیاز دارید، اما حساب های استاندارد (معمولی) رایگان هستند.

هنگامی که یک حساب GitHub دارید، ساده ترین راه برای اشتراک گذاری یک نوت بوک در GitHub در واقع به Git نیاز ندارد. از سال 2008، GitHub سرویس Gist خود را برای میزبانی و به اشتراک گذاری قطعه کد ارائه کرده است، که هر کدام مخزن خود را دارند. برای به اشتراک گذاشتن یک نوت بوک با استفاده از Gists:

  1. وارد شوید و به gist.github.com بروید .
  2. فایل خود  .ipynb را در یک ویرایشگر متن باز کنید، همه را انتخاب کنید و JSON داخل آن را کپی کنید.
  3. JSON نوت بوک را در اصل قرار دهید.
  4. به Gist خود یک نام فایل بدهید، به یاد داشته باشید که اضافه کنید  .iypnb یا این کار نخواهد کرد.
  5. روی «Create secret gist» یا «Create public gist» کلیک کنید.

این باید چیزی شبیه به شکل زیر باشد:

اگر یک Gist عمومی ایجاد کنید، اکنون می‌توانید URL آن را با هرکسی به اشتراک بگذارید و دیگران می‌توانند  کار شما را فورک و شبیه‌سازی  کنند.

ایجاد مخزن Git خود و به اشتراک گذاری آن در GitHub فراتر از محدوده این آموزش است، اما  GitHub راهنماهای زیادی را  برای شما فراهم می کند تا به تنهایی شروع به کار کنید.

یک نکته اضافی برای کسانی که از git استفاده می کنند این است که   برای آن دایرکتوری های مخفی که   Jupyter ایجاد می کند، یک استثنا  به شما  اضافه کنید تا فایل های چک پوینت را بی جهت به مخزن خود ارسال نکنید..gitignore.ipynb_checkpoints

Nbviewer

"ان بی ویور NBViewer" که تا سال 2015 هر هفته صدها هزار نوت بوک را رندر   می کند، محبوب ترین رندر نوت بوک در وب است. اگر از قبل جایی برای میزبانی آنلاین نوت‌بوک‌های Jupyter خود دارید، چه GitHub یا هر جای دیگر، NBViewer نوت‌بوک شما را رندر می‌کند و یک URL قابل اشتراک‌گذاری را همراه با آن ارائه می‌کند. به عنوان یک سرویس رایگان به عنوان بخشی از پروژه Jupyter ارائه شده است، در  nbviewer.jupyter.org در دسترس است .

NBViewer که در ابتدا قبل از ادغام نوت بوک Jupyter GitHub توسعه داده شد، به هر کسی اجازه می دهد یک URL، شناسه Gist، یا نام کاربری/repo/فایل GitHub را وارد کند و نوت بوک را به عنوان یک صفحه وب نمایش دهد. شناسه Gist شماره منحصر به فرد در انتهای URL آن است. برای مثال، رشته کاراکترهای بعد از آخرین بک اسلش در  https://gist.github.com/username/50896401c23e0bf417e89cd57e89e1de. اگر نام کاربری یا نام کاربری/مخزن GitHub را وارد کنید، یک مرورگر فایل حداقلی را مشاهده خواهید کرد که به شما امکان می دهد مخازن کاربر و محتویات آنها را بررسی کنید.

آدرس اینترنتی NBViewer که هنگام نمایش یک نوت بوک نمایش داده می شود، بر اساس URL نوت بوکی که در حال رندر کردن آن است، ثابت است، بنابراین می توانید آن را با هرکسی به اشتراک بگذارید و تا زمانی که فایل های اصلی آنلاین باقی بمانند، کار خواهد کرد - NBViewer فایل ها را برای مدت زیادی کش نمی کند. طولانی

اکستنشن های ژوپیتر نوت بوک

ما قبلاً همه چیزهایی را که برای استفاده در نوت بوک های Jupyter نیاز دارید رو گفتیم!

اکستنشن ها چیست؟

اکستنشن ها دقیقاً همان ویژگی های اضافی که عملکرد نوت بوک Jupyter را گسترش می دهد. در حالی که یک نوت بوک پایه Jupyter می تواند کارهای خوبی انجام دهد، اکستنشن ها برخی ویژگی های اضافی را ارائه می دهند که ممکن است به کارهای خاص کمک کند یا به سادگی تجربه کاربر را بهبود بخشد.

برای مثال، یک اکستنشن به نام «فهرست محتوا» فهرستی از محتویات را برای نوت بوک شما ایجاد می کند تا تجسم و حرکت در نوت بوک های بزرگ را آسان تر کند.

یکی دیگر به نام Variable Inspector، مقدار، نوع، اندازه و شکل هر متغیر را در نوت بوک شما برای ارجاع سریع و اشکال زدایی آسان به شما نشان می دهد.

دیگری به نام ExecuteTime به شما امکان می دهد بدانید هر سلول چه زمانی و برای چه مدت اجرا می شود - این می تواند به ویژه در صورتی که بخواهید سرعت بخشی از کد خود را سرعت بخشید، راحت باشد.

افزونه های زیادی موجود است.

از کجا می توانید اکستنشن اضافه کنید؟

برای دریافت اکستنشن ها ، باید Nbextension ها را نصب کنید. می توانید این کار را با استفاده از pip و خط فرمان انجام دهید. اگر آناکوندا دارید، ممکن است بهتر باشد این کار را از طریق Anaconda Prompt به جای خط فرمان معمولی انجام دهید.

ژوپیتر نوت بوک Jupyter Notebooks را ببندید، Anaconda Prompt را باز کنید و دستور زیر را اجرا کنید

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

هنگامی که این کار را انجام دادید، یک نوت بوک را راه اندازی کنید و باید تب Nbextensions را ببینید. با کلیک بر روی این برگه، لیستی از افزونه های موجود به شما نمایش داده می شود. به سادگی کادرهای برنامه های افزودنی را که می خواهید فعال کنید علامت بزنید.

نصب افزونه ها | اکستنشن ها

پس از نصب Nbextensions، دیگر نیازی به نصب اضافی برای هر افزونه نیست. با این حال، اگر قبلاً Nbextensons را نصب کرده‌اید اما تب را نمی‌بینید، تنها نیستید. این موضوع در Github به جزئیات برخی از مشکلات و راه حل های رایج می پردازد.

خلاصه :

با شروع از ابتدا و با گردش در نوت‌بوک‌های Jupyter آشنا شده‌ایم، ویژگی‌های پیشرفته‌تر IPython را بررسی کردیم و در نهایت یاد گرفتیم که چگونه کار خود را با دوستان، همکاران و جهان به اشتراک بگذاریم. و ما همه اینها را از خود یک نوت بوک انجام دادیم!


لینک حمایت مالی برای ادامه راه : اینجا کلیک کنید.

آدرس لینکدین من و جواب به سوالات شما : اینجا کلیک کنید.

انجام پروژه های ماشین لرنینگ و یادگیری عمیق در تلگرام : Mashayekhi_Ai@