ژوپیتر پایتون Jupyter چیست – راهنمای کاربردی به زبان ساده
![ژوپیتر پایتون Jupyter چیست – راهنمای کاربردی به زبان ساده](https://blog.faradars.org/wp-content/uploads/2019/01/Jupyter-Notebook-150x150.jpg)
![ژوپیتر پایتون Jupyter چیست – راهنمای کاربردی به زبان ساده](https://blog.faradars.org/wp-content/uploads/2019/01/Jupyter-Notebook.jpg)
«نتفلیکس» (Netflix) برای یکی از پروژههای خود که قصد دارد طی آن محتوای سفارشیسازی شده را برای بیش از ۱۳۰ میلیون بازدیدکننده خود ارائه کند از «علم داده» (Data Science) و «یادگیری ماشین» (Machine Learning) بهره میبرد. یکی از راهکارهای قابل توجهی که «دانشمندان داده» (Data Scientist) و «مهندسان داده» (Data Engineer) در نتفلیکس با بهرهگیری از آن به تعامل با دادههای خود میپردازند استفاده از «ژوپیتر نوتبوک» (Jupyter Notebook) است. ژوپیتر نوتبوک، امکان استفاده مشارکتی، گسترده، مقیاسپذیر و قابل بازتولید را فراهم میکند. هنگامی که صحبت از ساخت «نمونه اولیه» (prototyping) سریع و تحلیل اکتشافی میشود، ژوپیتر نوتبوک برای بسیاری از افراد یک پلتفرم بالفعل واقعی به شمار میآید. اگرچه، بسیاری از قابلیتهای ژوپیتر از نظرها دورمانده است. در ادامه، به بررسی برخی از ویژگیهای ژوپیتر پرداخته میشود که میتواند بهرهوری را ضمن کار با این پلتفرم افزایش دهد.
۱. اجرای دستورهای شِل
«شِل» (Shell) راهکاری برای تعامل متنی با کامپیوتر است. محبوبترین شل یونیکس، «بَش» (Bash) نام دارد. بَش، شل پیشفرض بسیاری از پیادهسازیهای مدرن یونیکس و بسیاری از بستههایی است که ابزارهای یونیکس مانند را برای ویندوز فراهم میکنند.
هنگام کار با مفسر پایتون، در شرایطی که نیاز به استفاده از ابزارهای خط فرمان باشد نیاز به جابهجایی مرتب بین شل و IDLE است. اگرچه، Jupyter Notebook سهولت اجرای دستورات شل را از نوتبوک با قرار دادن یک «!» اضافی پیش از دستورات فراهم میکند. هر دستوری که در خط فرمان کار کند در IPython نیز با قرار دادن کاراکتر پیشوند «!» کار میکند.
میتوان مقادیر را به صورت زیر به شل پاس داد و از آن تحویل گرفت.
توجه به این نکته لازم است که نوع داده نتایج بازگردانده شده «لیست» (List) نیست.
2. تمهای ژوپیتر نوت بوک
خبر خوش برای افرادی که چشمهایشان موقع زل زدن به پسزمینه سفید ژوپیتر خسته میشود آن است که تمهای متعددی برای این پلتفرم موجود هستند.
این تمها ارائه کد را نیز بهبود میبخشند. در ادامه به چگونگی نصب تمهای ژوپیتر پرداخته خواهد شد.
نصب
در صورتی که برای نصب ژوپیتر به مشکل بربخورید و نیاز به استفاده از چنین محیط برنامهنویسی داشته باشید میتوانید از محیطهای برنامه نویسی آنلاین پایتون مانند گوگل کُلَب استفاده کنید.
لیست تمهای موجود
در حال حاضر، تمهای موجود برای نوتبوک ژوپیتر عبارتند از: chesterish ،grade3 ،gruvboxd ،gruvboxl ،monokai ،oceans16 ،onedork ،solarizedd و solarizedl.
هر بار که تم تغییر میکند، نیاز به بارگذاری مجدد نوتبوک ژوپیتر به منظور بررسی اعمال تغییرات است. دستور مشابهی قابل اجرا از درون خود ژوپیتر با قرار دادن «!» پیش از دستور است.
![Jupyter Notebook](https://blog.faradars.org/wp-content/uploads/2018/12/Jupyter-Notebook-Themes.png)
![Jupyter Themes](https://blog.faradars.org/wp-content/uploads/2018/12/Jupyter-Notebook-Themes2.png)
![Jupyter Notebook](https://blog.faradars.org/wp-content/uploads/2018/12/Jupyter-Notebook-Themes3.png)
۳. افزونههای نوتبوک
افزونههای Jupyter Notebook امکان گام برداشتن فراتر از ساخت متداول آن را به کاربر میدهند. افزونههای Notebook یا nbextensions، ماژولهای «جاوا اسکریپت» (JavaScript) هستند که میتوانند روی اغلب Viewهای فرانت-اند نوتبوک بارگذاری شوند.
این افزونهها تجربه کاربری و رابط کاربری را ویرایش میکنند.
نصب
نصب با conda:
و یا با pip:
اکنون، با راهاندازی نوتبوک ژوپیتر، میتوان «تب» (Tab) مربوط به NBextensions را با گزینههای بسیار زیاد مشاهده کرد. کاربران بسته به نیاز، علایق و سلایق خود میتوانند آنها را نصب و از قابلیتهای فوقالعاده آنها بهرهمند شوند.
کاربرانی که بعد از انجام مراحل بیان شده در بالا نتوانند تب بیان شده را پیدا کنند، میتوانند به منو Edit مراجعه کنند.
در ادامه برخی از افزونههای کاربردی مورد بررسی قرار میگیرند.
۱. افزونه Hinterland برای ژوپیتر نوتبوک
Hinterland قابلیت تکمیل خودکار منو برای هر کلیدی که در سلول کد فشرده میشود را فراهم میکند، بدون آنکه آن را فقط بh کلید Tab بتوان فراخوانی کرد. این امر موجب میشود قابلیت تکمیل خودکار Jupyter مانند دیگر «محیطهای توسعه یکپارچه» (IDE)، از جمله PyCharm عمل کند.
2. افزونه Snippets برای ژوپیتر نوتبوک
این افزونه یک «منو کشویی» (Drop-down Menu) برای نوار ابزار Notebook فراهم میکند که امکان درج آسان قطعه کدها در نوتبوک کنونی را فراهم میکند.
۳. افزونه Split Cells Notebook
این افزونه سلولهای نوتبوک را تقسیم میکند و آنها را در مجاورت یکدیگر قرار میدهد.
4. افزونه Table of Contents
این افزونه امکان گردآوری همه «سرآیندهای» (Headers) در حال اجرا را فراهم میکند و آنها را در یک پنجره شناور به عنوان نوار کناری یا منو گردش نمایش میدهد.
افزونه همچنین قابل «درگ» (Draggable)، «تغییر اندازه» (Resizable)، «منعطف» (Collapsible) و «قابل حمل» (Dockable) است.
۵. افزونه Collapsible Headings برای ژوپیتر نوتبوک
این افزونه امکان داشتن بخشهای جمعشونده (دارای زیر بخش) که با «عنوانها» (headings) از هم جدا شدهاند را فراهم میکند. بنابراین، افرادی که حجم زیادی کد کثیف در نوتبوک خود دارند، میتوانند به سادگی آن را برای اجتناب از اسکرولهای دوباره و دوباره جمع کنند.
6. Autopep8
Autopep8 به قالببندی مجدد/زیباسازی محتوای سلولها تنها با یک کلیک کمک میکند. این افزونه ناجی کاربرانی است که از فشردن مداوم «کلید فاصله» (Spacebar) برای فرمت کردن کد خسته شدهاند.
4. ویجتهای Jupyter
ویجتها اشیای پایتونی هستند که اغلب در مرورگر به عنوان یک کنترل مانند «لغزنده» (Slider)، «جعبه متن» (textbox) و دیگر موارد ارائه میشوند.
ویجتها قابل استفاده برای ساخت «رابط کاربری گرافیگی» برای نوتبوک هستند.
نصب
در ادامه نگاهی به برخی از ویجتها انداخته میشود. برای جزئیات بیشتر میتوان به مخزن گیتهاب آنها (+) مراجعه کرد.
Interact
تابع interact به صورت خودکار یک «رابط کاربری» (User Interface | UI) میسازد که کاوش در کد و دادهها به صورت تعاملی را کنترل میکند. این سادهترین راه برای آغاز به کار با ویجتهای IPython است.
۱. ویجتهای پایهای
۲. ویجتهای پیشرفته
در ادامه، لیستی از ویجتهای پیشرفته و کاربردی ارائه شده است.
Play Widget
این ویجت برای اجرای انیمیشن با تکرار روی دنبالهای از اعداد صحیح در سرعت مشخص است. مقدار اسلایدر زیر به player لینک شده است.
Date picker
ویجت date picker در مرورگرهای Chrome و IE Edge کار میکند، اما در حال حاضر در «فایرفاکس» (Firefox) و «سافاری» (Safari) کار نمیکند، زیرا این مرورگرها از فیلد ورودی تاریخ HTML (یا HTML date input field) پشتیبانی نمیکنند.
Color picker
Tabs
Qgrid
Qgrid نیز یک ویجت برای Jupyter Notebook محسوب میشود که تمرکز اصلی آن روی «دیتافریمها» (Dataframes) است. این ویجت از SlickGrid برای رندر کردن دیتافریمهای Pandas در ژوپیتر نوتبوک استفاده میکند. این کار، امکان کاوش دیتافریمها با کنترلهای «پیمایش» (scrolling)، «مرتبسازی» (sorting) و «پالایش» (filtering) بصری و همچنین ویرایش دیتافریمها را با دو بار کلیک کردن روی سلولها فراهم میکند. مخزن گیتهاب (+) دارای جزئیات و مثالهای بیشتری در این رابطه است.
نصب
نصب با pip:
نصب با conda:
Slideshow
نوتبوک ابزاری موثر برای تدریس و نوشتن کدهای قابل توصیف است. اگرچه، هنگامی که کاربر قصد داشته باشد کار خود را ارائه کند، کل نوتبوک خود را (با همه کدها) نشان میدهد و یا از «پاورپوینت» (Powerpoint) کمک میگیرد.
نوتبوک ژوپیتر به سادگی قابل تبدیل به اسلایدها است و کاربر میتواند به سادگی انتخاب کند که چه چیزهایی در نوتبوک نمایش داده شوند و چه چیزهایی پنهان باشند. دو راه برای تبدیل نوتبوک به اسلاید وجود دارد.
گزینه اسلاید توکار در نوتبوک ژوپیتر
ابتدا باید نوتبوک ژوپیتر را باز کرد و به صفحه View → Cell Toolbar → Slideshow رفت. یک نوار خاکستری روشن در بالای هر سلول ظاهر میشود و میتوان با بهرهگیری از آن اسلایدها را سفارشیسازی کرد.
اکنون میتوان به دایرکتوری رفت که نوتبوک در آن نمایش داده شده و کد زیر را وارد کرد.
اسلایدها در پورت ۸۰۰ نمایش داده میشوند. همچنین، یک فایل html. در دایرکتوری تولید خواهد شد و میتوان به اسلایدها از آنجا دسترسی داشت.
استفاده از یک تم پسزمینه به جذابیت هرچه بیشتر و درجه یک شدن کار کمک میکند. در ادامه، تم «onedork» روی نوتبوک اعمال میشود وسپس آن را به یک اسلایدشو تبدیل میکند.
این اسلایدها دارای یک نقص هستند و آن این است که کاربر کد را میبیند ولی نمیتواند آن را اصلاح کند. پلاگین RISE برای این مساله یک راهکار ارائه میکند.
استفاده از پلاگین RISE
RISE سرنامی برای Reveal.js است. Reveal.js یک افزونه نمایش اسلاید برای Jupyter/IPython است. این افزونه reveal.js را برای اجرای اسلایدشو به کار میگیرد. این قابلیت فوقالعاده کاربردی است، زیرا امکان اجرای کد بدون خروج از اسلایدشو را فراهم میکند.
نصب
استفاده از conda (توصیه میشود):
استفاده از pip (کمتر توصیه میشود):
و سپس، دو گام دیگر برای نصب JS و CSS در محل مناسب باید انجام شود:
اکنون، از RISE برای اسلایدشو تعاملی استفاده میشود. باید Jupyter Notebook که پیشتر ساخته شده است را مجددا باز کرد. اکنون، یک افزونه جدید اضافه شده که میگوید «Enter/Exit RISE Slideshow».
با کلیک روی گزینه نشان داده شده در تصویر بالا میتوان به دنیای اسلایدهای تعاملی وارد شد.
URLها، PDFها و ویدئوهای توکار
چرا باید از لینکهای صرف استفاده کرد در حالیکه میتوان به سادگی یک URL، ویدئو و PDF را با استفاده از ماژول display در IPython، در نوتبوک ژوپیتر توکار کرد.
URL
ویدئوهای یوتیوب
جمعبندی
موارد بیان شده تعدادی از ویژگیهای Jupyter Notebook هستند. برخی از این موارد برای بسیاری از کاربران نوتبوک ژوپیتر شناخته شدهاند. با آزمودن موارد بیان شده در بالا و دیگر افزونهها و قابلیتهای محیط محاسبات تعاملی مبتنی بر وب ژوپیتر نوتبوک، میتوان هر چه بیشتر از مزایای آن بهرهمند شد.
اگر مطلب بالا برای شما مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشود:
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- گنجینه آموزشهای برنامه نویسی پایتون (Python)
- مجموعه آموزشهای یادگیری ماشین و بازشناسی الگو
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- مجموعه آموزشهای هوش محاسباتی
- آموزش برنامهنویسی R و نرمافزار R Studio
^^
سلام ، برنامه ژوپیتر رو آموزش ببینم خوبه بعد ها به دردم میخوره؟
ممنون خیلی خیلی ممنون مشکلم حل شد
من دو ورژن از پایتون روی سیستم دارم اما ژوپیتر نوتیوک با ورژن قدیمی کار میکنه چطور میتونم ورژن ژوپیتر رو آپدیت کنم
سلام وقت بخیر
من با jupyter سعی کردم یه کد رو اجرا کنم ولی به محض اینکه matplotlib رو فراخوانی میکنم کرنل از کار میفته.
میشه راهنماییم کنید
توی تم های دیگه بجز تم اصلی و پیشفرض، اون دکمه های زیرِ تولبار کجا میرن؟همون به علاوه و قیچی و دکمه ران و اینا. چجور میتونیم ظاهرشون کنیم توی تم های دیگه؟؟
سلام خسته نباشید من این افزونه روی سیستم خودم نصب کردم از طریق cmd حالا چطور باید ازش استفاد کنم؟pip install jupyter_contrib_nbextension منظورم این افزونه هست
سلام آیا دز زمینه machine learning در کولب آموزش هایی دارید؟
با سلام؛
از همراهی شما با مجله فرادرس سپاسگزاریم. در حال حاضر آموزشهایی در این راستا در دست تهیه است که هنوز منتشر نشدهاند. پیشنهاد میشود اگر دلیل ویژهای برای استفاده از کولب وجود ندارد، از ابزارهای دیگر و به طور خاص پایتون استفاده کنید که هم به لحاظ توانمندی و قدرت در حوزه یادگیری ماشین یکهتاز است و هم به لحاظ محتوای آموزشی پشتوانه خوبی دارد.
پیروز، شاد و تندرست باشید.
چقدر خوب بود
سلام….
برای افزایش سایز فونت بدون تغییر تم در ژوپیتر باید چیکار کنیم؟؟؟؟
در نصب تم ها با این مشکل روبرو شدن:
Reset css and font defaults in
خیلی مفید بود. سپاسگذارم