آنچه در این صفحه می خوانید:
- معرفی ژوپیتر نوت بوک (Jupyter Notebook)
- ویژگی های ژوپیتر نوت بوک (Jupyter Notebook)
- کاربرد ژوپیتر نوت بوک (Jupyter Notebook)
معرفی ژوپیتر نوت بوک (Jupyter Notebook)
ژوپیتر نوت بوک (Jupyter Notebook) یک برنامه وب اوپن سورس است که به شما امکان ایجاد و به اشتراک گذاری اسنادی حاوی لایو کد، معادلات، مدل های ویژوال و تکست بوک را می دهد. کاربرد آن تمیز کردن و تغییر داده ها، شبیه سازی عددی، مدل سازی آماری، ویژوال سازی داده، یادگیری ماشینی و غیره است. پروژه ژوپیتر یک پروژه بدون سود و متن باز است که در سال 2014 از پروژه IPython متولد شده است، زیرا آن را برای حمایت از علم داده تعاملی و محاسبات علمی در تمام زبان های برنامه نویسی تکامل یافته است. Jupyter همیشه نرم افزاری اوپن سورس خواهد بود و به صورت رایگان برای همه قابل دسترس است و تحت شرایط لیبرال مجوز BSD اصلاح و منتشر شده است. Jupyter از طریق جامعه Jupyter در گیت هاب توسعه یافته است.
ژوپیتر نوت بوک را می توان به تعدادی از فرمت های خروجی اوپن استاندارد از جمله - اچ تی ام ال، سی اس اس، پایتون، LaTeX، PDF، ReStructuredText، Markdown - از طریق "Download As" در اینترفیس وب، از طریق کتابخانه nbconvert یا همچنین فرمان "jupyter nbconvert" تبدیل کرد. برای ساده سازی ویژوال اسناد نوت بوک Jupyter در وب، کتابخانه nbconvert به عنوان خدماتی از طریق NbViewer ارائه می شود که می تواند یک URL را به هر نوت بوک عمومی در دسترس داشته باشد، آن را به HTML در پرواز تبدیل کرده و آن را به کاربر نمایش دهد.
ژوپیتر نوت بوک یک REPL مبتنی بر مرورگر ارائه می دهد که بر روی تعدادی از کتابخانه رایج ساخته شده است:
ژوپیتر نوت بوک می تواند به بسیاری از کرنل ها متصل شود تا امکان برنامه نویسی با بسیاری از زبان ها فراهم شود. از نسخه 2.3 (اکتبر 2014)، در حال حاضر 49 کرنل سازگار با Jupyter برای بسیاری از زبان های برنامه نویسی، از جمله Python، R، Julia و Haskell وجود دارد.
برنامه ژوپیتر نوت بوک (Jupyter Notebook) چیست؟
به عنوان یک برنامه کلاینت - سرور، برنامه ژوپیتر نوت بوک به شما امکان می دهد نوت بوک های خود را از طریق مرورگر وب ویرایش و اجرا کنید. این برنامه می تواند بر روی رایانه شخصی و بدون دسترسی به اینترنت اجرا شود، یا می توان آن را روی یک سرور از راه دور نصب کرد، جایی که می توانید از طریق اینترنت به آن دسترسی داشته باشید.
دو مؤلفه اصلی آن کرنل و داشبورد است. کرنل برنامه ای است که کد کاربر را اجرا می کند و درون آن را مورد بررسی قرار می دهد. برنامه نوت بوک Jupyter دارای کرنلی برای کد پایتون است، اما کرنل های دیگری برای زبان های برنامه نویسی نیز وجود دارد.
داشبورد برنامه نه تنها اسناد نوت بوکی که ساخته اید را نشان می دهد و می توانید دوباره آن را باز کنید بلکه می تواند برای مدیریت کرنل ها نیز استفاده شود: شما می توانید هر کدام را اجرا کنید و در صورت لزوم آنها را خاموش کنید.
تاریخچه ژوپیتر نوت بوک (Jupyter Notebook)
برای درک کامل اینکه ژوپیتر نوت بوک چیست و چه ویژگی هایی دارد نیاز است بدانید از کجا بوجود آمده است. بیایید به طور مختصر به اواخر دهه 1980 برگردیم. گیدو ون راسوم در مؤسسه ملی تحقیقات ریاضیات و علوم رایانه در هلند فعالیت خود را در زمینه پایتون آغاز می کند.
اواخر سال 2001، فرناندو پرز توسعه IPython را آغاز می کند. در سال 2005، هم روبرت کرن و هم فرناندو پرز اقدام به ساختن سیستم نوت بوک کردند. متأسفانه، نمونه اولیه هرگز به طور کامل قابل استفاده نبود.
تیم IPython کار خود را ادامه داده و در سال 2007، آنها تلاش دیگری برای اجرای یک سیستم نوت بوک انجام دادند. تا اکتبر 2010، نمونه اولیه نوت بوک وب وجود داشت، و در تابستان سال 2011، این نمونه اولیه گنجانیده شد، و در 21 دسامبر 2011 منتشر شد.
سرانجام، در سال 2014، Project Jupyter به عنوان یک پروژه اسپین آف از IPython آغاز شد. IPython اکنون نام بک اند پایتون است که به کرنل آن نیز معروف است. به تازگی، نسل بعدی نوت بوک های Jupyter به جامعه معرفی شده است که آن را JupyterLab می نامند.
ویژگی های ژوپیتر نوت بوک (Jupyter Notebook)
- پشتیبانی از بیش از 40 زبان برنامه نویسی نظیر آر (R)، Python، Julia و اسکالا (Scala)
- اشتراک گذاری نوت بوک ها با دیگران با استفاده از ایمیل، Dropbox، GitHub و Jupyter Notebook Viewer
- کد شما می تواند خروجی غنی و تعاملی تولید کند: HTML، تصاویر، فیلم ها، LaTeX و انواع سفارشی MIME
- استفاده از ابزارهای فرا داده، مانند آپاچی اسپارک (Apache Spark)، از Python،R و Scala. کاوش همان داده با پانداس (Pandas)، scikit-learn، ggplot2،TensorFlow.
- مدیریت کاربران و احراز هویت با PAM، OAuth یا ادغام با سیستم سرویس دایرکتوری
- استقرار آن برای هزاران کاربر در سازمان در زیرساخت های متمرکز در داخل یا خارج از محل
- استفاده از از داکر (Docker) و کوبرنتیز برای ارزیابی استقرار، جدا کردن فرآیندهای کاربر و ساده سازی نصب و راه اندازی نرم افزار
- نوت بوک را در کنار داده های خود قرار دهید تا مدیریت نرم افزارهای متحد و دسترسی به داده ها را در داخل سازمان خود انجام دهید.
کاربرد ژوپیتر نوت بوک (Jupyter Notebook)
محققان می توانند از آن برای ترکیب کد نرم افزار، خروجی محاسباتی، متن توضیحی و منابع مولتی مدیا در یک سند واحد استفاده کنند. نوت بوک های محاسباتی در واقع آزمایشگاهی برای محاسبات علمی هستند. بجای چسباندن، مثلاً، ژل های DNA در کنار پروتکل های آزمایشگاهی، محققان کد، داده ها و متن را برای مستند کردن روش های محاسباتی خود تعبیه می کنند. برایان گرنجر، خالق Jupyter، در دانشگاه ایالتی پلی تکنیک کالیفرنیا، یک "روایت محاسباتی" است - سندی که به محققان اجازه می دهد تا کدهای و داده های خود را با تجزیه و تحلیل، فرضیه ها و حدس ها تکمیل کنند.
برای دانشمندان داده، این فرمت می تواند اکتشافات را هدایت کند. نوت بوک ها نوعی محاسبه تعاملی هستند، محیطی که در آن کاربران کد را اجرا می کنند تا ببینند چه اتفاقی می افتد، به نوعی مکالمه تکراری بین محقق و داده تکرار می شود. آنها تنها تالار گفتگو برای اینگونه گفتگوها نیستند، نوت بوک ها به کاربران این امکان را می دهند که مکالمات را مستند سازند و ارتباطات قدرتمندتر بین موضوعات، تئوری ها، داده ها و نتایج را ایجاد کنند.
محققان همچنین می توانند از ژوپیتر نوت بوک برای ایجاد آموزش یا کتابچه راهنمای تعاملی برای نرم افزار خود استفاده کنند. این همان کاری است که مکنزی ماتیس، یک متخصص علوم اعصاب سیستم در دانشگاه هاروارد در کمبریج، ماساچوست، برای DeepLabCut، یک کتابخانه برنامه نویسی که تیم او برای تحقیقات رفتاری و علوم عصبی ساخته بود، انجام داد. آنها می توانند از ژوپیتر نوت بوک برای تهیه نسخه های خطی یا به عنوان وسایل کمک آموزشی استفاده کنند.
ژوپیتر نوت بوک دارای دو جزء است. کاربران کد برنامه نویسی یا متن را در سلول های مستطیل شکل در یک صفحه وب فرانت اند وارد می کنند. سپس مرورگر آن کد را به "کرنل" بک اند منتقل می کند، که کد را اجرا می کند و نتایج را برمی گرداند. به طور معمول، هر نوت بوک می تواند تنها یک کرنل و یک زبان را اجرا کند، اما جای تغییر وجود دارد.
نکته مهم این است که کرنل ها نباید روی رایانه کاربر باشند. ژوپیتر نوت بوک همچنین می توانند در کلود (Cloud) اجرا شوند. جدیدترین نوع کلاینت JupyterLab است که در ژانویه سال 2018 راه اندازی شد و مانند ژوپیتر نوت بوک یا به صورت یک بسته مستقل یا به عنوان بخشی از محیط رایگان محاسبات علمی آناکوندا در دسترس است.