مرا به خاطر بسپار

Jupyter Notebook: آشنایی

بازدید: 249 آخرین به‌روزرسانی: 31 فروردين 1404

مقدمه

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

Jupyter Notebook چیست؟

ابزار Jupyter Notebook ابزاری است که کد اجرایی، متن غنی و تجسم‌ها را در یک سند واحد به نام "نوت‌بوک" ترکیب می‌کند. نام "Jupyter" از زبان‌های اصلی پشتیبانی‌شده گرفته شده است: Julia، Python و R. نوت‌بوک‌ها در فرمت .ipynb (IPython Notebook) ذخیره شده و می‌توانند به اشتراک گذاشته شده، صادر شده یا به فرمت‌های مختلفی مانند HTML، PDF یا اسلاید تبدیل شوند.
برای شروع استفاده از Jupyter Notebook، باید ابتدا پیش‌نیازهای آن را روی سیستم خود نصب کنید:
  • پایتون (نسخه 3.6 یا بالاتر)؛ نصب بر روی ویندوز و لینوکس متفاوت است. برای نصب روی ویندوزی کافیست نسخه اجرایی آن را دانلود و نصب کنید. برای نصب روی لینوکس بسته به توزیع آن اقدام کنید. برای مثال در اوبونتو از دستور زیر استفاده کنید
apt install python3-pip
  • یک مدیر بسته مانند pip یا conda؛ در صورتیکه پایتون را نصب کرده باشید در ادامه نصب روی ویندوز و لینوکس یکسان استو کافیست Terminal را در لینوکس یا CMD را در ویندوز باز کنید و دستور زیر را اجرا کنید.
pip install jupyter
با استفاده از دستور زیر میتوانید صحت نصب را بررسی کنید:
jupyter notebook --version

ویژگی‌های کلیدی Jupyter Notebook

ابزار Jupyter Notebook به‌عنوان یک محیط محاسباتی تعاملی و قدرتمند، مجموعه‌ای از ویژگی‌های منحصربه‌فرد را ارائه می‌دهد که آن را به ابزاری ضروری برای برنامه‌نویسان، دانشمندان داده و پژوهشگران تبدیل کرده است. این ویژگی‌ها امکان ترکیب کد، مستندات، تجسم‌ها و همکاری را در یک پلتفرم منسجم فراهم می‌کنند. در ادامه، ویژگی‌های کلیدی Jupyter Notebook به‌صورت جامع و با جزئیات توضیح داده شده‌اند. این ویژگی‌ها در بخش‌های بعدی مقاله با مثال‌های عملی و کاربردها به‌طور کامل تشریح خواهند شد.
  1. کدگذاری تعاملی
Jupyter Notebook امکان اجرای کد به‌صورت تعاملی را در سلول‌های مجزا فراهم می‌کند، به‌طوری‌که کاربران می‌توانند کد را نوشته، اجرا کرده و نتایج را بلافاصله زیر سلول مشاهده کنند. این خصوصیت به‌ویژه برای آزمایش سریع ایده‌ها، دیباگ کردن، یا تحلیل داده‌ها بسیار مفید است.
مزایا:
  • بازخورد فوری برای بررسی صحت کد.
  • امکان تغییر و اجرای مجدد بخش‌های خاصی از کد بدون نیاز به اجرای کل برنامه.
  • مناسب برای یادگیری برنامه‌نویسی، زیرا نتایج هر خط کد به‌صورت بصری قابل مشاهده است.
  1. پشتیبانی از متن غنی
Jupyter Notebook از سلول‌های Markdown پشتیبانی می‌کند که به کاربران امکان می‌دهد مستندات حرفه‌ای و خوانا ایجاد کنند. این سلول‌ها از فرمت Markdown و همچنین LaTeX برای نوشتن معادلات ریاضی پشتیبانی می‌کنند.
مزایا:
  • ترکیب توضیحات متنی با کد برای ایجاد گزارش‌های جامع.
  • مناسب برای آموزش، مستندسازی پروژه‌ها، یا ارائه نتایج پژوهش.
  • امکان export به فرمت‌های مختلف (مثل PDF یا HTML) با حفظ فرمت متن.
  1. تجسم‌های یکپارچه
Jupyter Notebook امکان ادغام نمودارها، چارت‌ها، و تصاویر را مستقیماً در نوت‌بوک فراهم می‌کند، که برای تجسم داده‌ها و نتایج محاسبات بسیار ارزشمند است. این ویژگی با کتابخانه‌هایی مانند Matplotlib، Seaborn، یا Plotly تقویت می‌شود.
چگونه کار می‌کند؟ کدهای تجسم (مثلاً رسم نمودار) در سلول‌های کد نوشته شده و خروجی گرافیکی زیر سلول نمایش داده می‌شود.
مزایا:
  • نمایش بصری داده‌ها برای تحلیل بهتر (مثلاً نمودارهای میله‌ای، پراکندگی، یا هیستوگرام).
  • امکان تعامل با نمودارها با استفاده از ابزارهای تعاملی مانند Plotly.
  • ترکیب نمودارها با توضیحات متنی در همان سند.
  1. قابلیت گسترش
Jupyter Notebook به دلیل معماری ماژولار خود، قابلیت افزودن ابزارها و ویژگی‌های جدید را از طریق ویجت‌ها، افزونه‌ها و کرنل‌های سفارشی ارائه می‌دهد.ویجتها ابزارهای تعاملی مانند اسلایدرها یا دکمه‌ها (با ipywidgets) که امکان تعامل کاربر با داده‌ها را فراهم می‌کنند.
افزونه‌ها: افزونه‌های nbextensions (مثل فهرست مطالب یا بررسی املا) که رابط کاربری و عملکرد را بهبود می‌بخشند.
کرنل‌های سفارشی: این ابزار امکان پشتیبانی از زبان‌های مختلف (مثل R، Julia، یا حتی C++) را با نصب کرنل‌های مربوطه ممکن می‌سازد.
مزایا:
  • انعطاف‌پذیری برای تطبیق با نیازهای خاص پروژه.
  • افزایش بهره‌وری با ابزارهای سفارشی.
  • پشتیبانی از اکوسیستم گسترده‌ای از افزونه‌ها و ابزارهای متن‌باز.
  1. همکاری و اشتراک‌گذاری
Jupyter Notebook امکان اشتراک‌گذاری و همکاری روی نوت‌بوک‌ها را از طریق پلتفرم‌های مختلف فراهم می‌کند، که آن را به ابزاری ایده‌آل برای تیم‌ها و آموزش تبدیل کرده است.
روش‌های اشتراک‌گذاری:
  • ذخیره نوت‌بوک به‌عنوان فایل .ipynb و اشتراک از طریق ایمیل یا GitHub.
  • نمایش تعاملی نوت‌بوک‌ها در GitHub (رندر خودکار فایل‌های .ipynb).
  • استفاده از JupyterHub برای ایجاد محیط‌های چندکاربره در مؤسسات.
  • پلتفرم‌های ابری مانند Google Colab یا Binder برای اجرای نوت‌بوک‌ها بدون نصب.
مزایا:
  • همکاری تیمی با ترکیب کد، مستندات، و تجسم‌ها در یک فایل.
  • امکان بازبینی و ویرایش نوت‌بوک‌ها توسط چندین کاربر.
  • مناسب برای ارائه‌های تعاملی یا آموزش آنلاین.
چرا این ویژگی‌ها مهم هستند؟

این ویژگی‌ها، Jupyter Notebook را از یک محیط ساده برنامه‌نویسی به یک پلتفرم چندمنظوره برای محاسبات، مستندسازی، و همکاری تبدیل کرده‌اند. کدگذاری تعاملی و تجسم‌ها به تحلیل داده‌ها سرعت می‌بخشند، پشتیبانی از متن غنی مستندسازی را حرفه‌ای می‌کند، قابلیت گسترش انعطاف‌پذیری را افزایش می‌دهد، و ابزارهای همکاری ارتباط بین تیم‌ها را تسهیل می‌کنند. این ترکیب منحصربه‌فرد، Jupyter Notebook را به ابزاری بی‌رقیب در علوم داده، یادگیری ماشین، آموزش، و پژوهش تبدیل کرده است.

آشنایی با اصول اولیه

1-1                       سلول‌ها: اجزای اصلی نوت‌بوک
سلول‌ها، واحدهای اصلی تشکیل‌دهنده یک نوت‌بوک هستند. هر نوت‌بوک از مجموعه‌ای از سلول‌ها تشکیل شده است که به‌صورت عمودی کنار هم قرار می‌گیرند. سلول‌ها به شما امکان می‌دهند کد، متن یا محتوای دیگر را به‌صورت سازمان‌یافته وارد کنید. دو نوع اصلی سلول وجود دارد:
  • سلول‌های کد (Code Cells): برای نوشتن و اجرای کدهای برنامه‌نویسی (مانند پایتون، R یا جولیا) استفاده می‌شوند. وقتی یک سلول کد را اجرا می‌کنید، خروجی (مانند نتایج محاسبات، پیام‌ها، یا نمودارها) مستقیماً زیر سلول نمایش داده می‌شود.
print(“Hello”)
x = 5
y = 10
print(x + y)

سلول‌های Markdown: این سلول‌ها برای نوشتن متن فرمت‌شده، توضیحات، تصاویر، یا معادلات ریاضی (با استفاده از LaTeX) استفاده می‌شوند. این سلول‌ها برای مستندسازی پروژه، افزودن یادداشت‌ها، یا ایجاد گزارش‌های خوانا بسیار مفید هستند. در شکل زیر سلول‌ها با فلش نشان داده شده‌اند:
نحوه ایجاد یک سلول Markdown

نحوه ایجاد یک سلول Markdown

عملیات پایه سلول‌ها
عملیات پایه سلول از 4 عمل تشکیل شده است: اجرای سلول، افزودن سلول، تغییر نوع سلول و ذخیره.
اجرای سلول: کلیدهای Shift + Enter را فشار دهید تا سلول اجرا شود و به سلول بعدی بروید.
افزودن سلول: روی دکمه + کلیک کنید یا در حالت فرمان کلید b را فشار دهید.
تغییر نوع سلول: از منوی کشویی استفاده کنید یا کلید m را برای Markdown و y را برای کد فشار دهید.
ذخیره: کلیدهای Ctrl + S را فشار دهید یا از آیکون ذخیره استفاده کنید.
1-1                       کرنل: قلب اجرایی نوت‌بوک
کرنل (Kernel) یک موتور محاسباتی است که کدهای نوشته‌شده در سلول‌ها را اجرا می‌کند. هر نوت‌بوک به یک کرنل متصل است که مسئول پردازش کد و ذخیره حالت‌های برنامه (مانند متغیرها) است. برای مثال، در یک نوت‌بوک پایتون، کرنل IPython است که کد پایتون را اجرا می‌کند.
jupyter1.png
ویژگی‌های کرنل:
حافظه: کرنل متغیرها و حالت‌های برنامه را در حافظه نگه می‌دارد. مثلاً اگر در یک سلول متغیر x = 5 تعریف کنید، این مقدار در سلول‌های بعدی قابل دسترسی است.
استقلال: هر نوت‌بوک کرنل جداگانه‌ای دارد، بنابراین اجرای یک نوت‌بوک تأثیری بر نوت‌بوک دیگر ندارد.
پشتیبانی از زبان‌ها: کرنل‌های مختلف برای زبان‌های مختلف (مانند R، جولیا، یا حتی MATLAB) وجود دارند.
مدیریت کرنل
برای کنترل کرنل، گزینه‌های زیر در منوی Kernel یا نوار ابزار در دسترس هستند:
jup4.png
  1. راه‌اندازی مجدد کرنل (Restart Kernel)
بازنشانی تمام متغیرها و حالت‌های برنامه با استفاده از Kernel > Restart یا آیکون مربوطه در نوار ابزار. این گزینه زمانی مفید است که کد شما خطا می‌دهد یا حافظه پر شده است.
  • پس از راه‌اندازی مجدد، باید تمام سلول‌ها را دوباره اجرا کنید.
  1. توقف اجرا (Interrupt Kernel)
متوقف کردن اجرای کدی که بیش از حد طول کشیده یا گیر کرده است (مثلاً یک حلقه بی‌نهایت) با استفاده از Kernel > Interrupt یا آیکون مربوطه.
  • این گزینه اجرا را متوقف می‌کند اما متغیرها را پاک نمی‌کند.
  1. راه‌اندازی مجدد و اجرای همه سلول‌ها (Restart & Run All):
بازنشانی کرنل  و اجرای از بالا به پایین تمام سلول‌ها با استفاده از  Kernel > Restart & Run All.
.
  • برای اطمینان از صحت نتایج در نوت‌بوک‌های بزرگ مفید است.
  1. تغییر کرنل (Change Kernel)
تغییر زبان برنامه‌نویسی یا نسخه کرنل (مثلاً از Python 3.8 به Python 3.9) با استفاده از Kernel > Change Kernel و انتخاب کرنل مورد نظر.
.
  • به یاد داشته باشید که کرنل‌های جدید باید از قبل نصب شده باشند.

جمع‌بندی

در این مقاله شما با مفاهیم پایه‌ای و نصب و راه‌اندازی Jupyter Notebook آشنا شدید. در مقاله بعدی با ویژگی‌های پیشرفته و آموزش‌های بیشتری با شما همراه خواهیم بود.

سوالات متداول

  1. آیا Jupyter روی موبایل کار می‌کند؟
بله، از طریق برخی اپلیکیشن‌ها یا سرویس‌های ابری مانند Google Colab.
  1. چگونه می‌توانم از افزونه‌ها استفاده کنم؟
با نصب jupyter_contrib_nbextensions و فعال کردن افزونه‌های مورد نیاز.
  1. چرا سلول‌های من اجرا نمی‌شوند؟
کرنل ممکن است قطع شده باشد - از منوی Kernel گزینه Restart را امتحان کنید.
تا چه حد این مطلب برای شما مفید بود؟
بر اساس رای 0 نفر

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

ثبت نظر

نظر دادن