۵ محیط توسعه یکپارچه (IDE) پایتون برای یادگیری ماشین — راهنمای کاربردی
یکی از دغدغههای مهندسان یادگیری ماشین و علم داده انتخاب ابزارهای مناسب است. «محیط توسعه یکپارچه» (Integrated Development Environment) مورد استفاده برای کد نویسی از جمله این ابزارها به شمار میآید. در ادامه، ۵ محیط توسعه یکپارچه پایتون برای یادگیری ماشین همراه با معرفی ویژگیهای آنها جهت کمک به کاربران برای انتخاب گزینه مناسب ارائه شده است.
انتخاب محیط توسعه یکپارچه پایتون برای یادگیری ماشین
«محیط توسعه یکپارچه» (Integrated Development Environment | IDE) یک برنامه کاربردی است که ابزارهای پایهای را به منظور نوشتن و تست نرمافزارها برای برنامهنویسان و توسعهدهندگان فراهم میکند. به طور کلی، یک محیط توسعه یکپارچه شامل یک «ویرایشگر» (Editor)، یک «کامپایلر» (Compiler) یا «مفسر» (Interpreter) و یک «اشکالزدا» (دیباگر | Debugger) است که از طریق «رابط کاربری گرافیکی» (Graphic User Interface | GUI) در دسترس هستند.
بر اساس آنچه در ویکیپدیا آمده، «پایتون» (Python) یک زبان برنامهنویسی سطح بالا، «همه منظوره» (General Purpose)، مفسری و پویا محسوب میشود که به طور گستردهای مورد استفاده قرار گرفته است. این زبان برنامهنویسی، از جمله زبانهای نسبتا قدیمی و بسیار محبوب به شمار میآید. پایتون متن باز بوده و برای وب و «توسعه اینترنت» (Internet Development) (با «چارچوبهایی» (Frameworks) مانند «جنگو» (Django)، «فلسک» (Flask) و دیگر موارد)، محاسبات علمی و عددی (با کمک کتابخانههایی مانند SciPy ،NumPy و دیگر موارد)، توسعه نرمافزار و بسیاری از دیگر کاربردها مورد استفاده قرار میگیرد.
با توجه به اینکه ویرایشگرهای متن برای ساخت سیستمهای بزرگی که نیازمند ماژولهای یکپارچه و کتابخانهها هستند کافی محسوب نمیشود و نیاز به یک محیط توسعه یکپارچه (IDE) محسوس است و در عین حال، در یادگیری ماشین نیاز به IDE با قابلیتهای خاص این حوزه وجود دارد، در ادامه ۵ محیط برنامه نویسی پایتون برای یادگیری ماشین با ویژگیهای قابل توجه و محبوبیت بالا، معرفی میشوند.
ژوپیتر/آیپایتون نوتبوک
«پروژه ژوپیتر» (Project Jupyter) به عنوان یک اشتقاق از «آیپایتون» (IPython) در سال ۲۰۱۴ برای پشتیبانی از محاسبات علمی و «علم داده» (Data Science) به صورت تعاملی در بسیاری از زبانهای برنامهنویسی شروع به کار کرد. توسعهدهندگان IPython Notebook میگویند: «IPython نسخه ۳ آخرین انتشار یکپارچه آن بوده است.
از نسخه ۴ به بعد، بخشهای مستقل زبانی (language-agnostic) پروژه شامل نوتبوک، پروتکل پیام، برنامه کاربردی وب نوتبوک و دیگر موارد به یک پروژه دیگر با نام Jupyter انتقال داده شدهاند. خود IPython بر پایتون تعاملی، بخشی از چیزی که کرنل پایتون را برای ژوپیتر فراهم میکند، متمرکز شده است». ژوپیتر از سه مولفه نوتبوک برنامههای کاربردی وب، کرنل و مستندات نوتبوک تشکیل شده است. برخی از ویژگیهای کلیدی این محیط توسعه یکپارچه پایتون برای یادگیری ماشین در ادامه بیان شدهاند.
- «متنباز» (Open Source) است.
- میتواند تا ۴۰ زبان را پشتیبانی کند و شامل زبانهای محبوب برای علم داده شامل پایتون، R، «اسکالا» (Scala)، «جولیا» (Julia) و دیگر موارد میشود.
- این IDE امکان ساخت و به اشتراکگذاری اسناد را با معادلات، بصریسازی و کدهای زنده میدهد.
- ویجتهای تعاملی وجود دارند که از آنها کدها میتوانند خروجیهایی مانند ویدئوها، تصاویر و «لاتک» (LaTeX) تولید کنند. علاوه بر این، ویجتهای تعاملی برای بصریسازی و دستکاری دادهها در زمان واقعی نیز قابل استفاده هستند.
- این محیط دارای یکپارچهسازی «کلانداده» (Big Data) نیز هست که با بهرهگیری از آن میتوان از ابزارهای کلان داده مانند «آپاچی اسپارک» (Apache Spark)، در اسکالا، پایتون و R بهرهمند شد.
- «زبان نشانهگذاری مارکداون» (Markdown Markup Language) دارای قابلیت افزودن «توضیحات» «Commentary» به کد، به شکلی است که کاربر میتواند منطق و فرآیند فکری را درون نوتبوک و نه نظرات داخل خود پایتون ذخیره کند.
از جمله کاربردهای Jupyter notebook میتوان به «پاکسازی داده» (Data Cleaning)، «تبدیل داده» (Data Transformation)، «مدلسازی آماری» (Statistical Modelling) و یادگیری ماشین اشاره کرد. برخی از ویژگیهای اختصاصی یادگیری ماشین به صورت یکپارچه شده در ژوپیتر نوتبوک موجود هستند که از آن جمله میتوان به کتابخانههای NumPy ،Matplotlib و Pandas اشاره کرد. دیگر ویژگی قابل توجه Jupyter notebook آن است که میتواند نمودارهای حاصل از اجرای سلولهای کد را نمایش دهد. از این محیط توسعه یکپارچه پایتون برای یادگیری ماشین و علم داده در حال حاضر در شرکتهای محبوبی مانند گوگل، مایکروسافت و IBM و مراکز آموزشی مانند «دانشگاه برکلی» (UC Berkeley) و «دانشگاه ایالتی میشیگان» (Michigan State University) استفاده میشود. برای دانلود «Jupyter Notebook» میتوان به وبسایت (+) آن مراجعه کرد.
پایچارم
«پایچارم» (PyCharm) یک محیط توسعه یکپارچه پایتون توسعه داده شده توسط شرکت توسعه نرمافزاری JetBrains است. نسخه بتای این محیط در جولای سال ۲۰۱۰ و نسخه ۱.۰ سه ماه بعد در اکتبر ۲۰۱۰ منتشر شد. PyCharm یک محیط توسعه یکپارچه کاملا تجهیز و تخصصی برای پایتون است که در دو نسخه عرضه میشود.
PyCharm Community Edition نسخه رایگان این IDE است و نسخه پیشرفتهتر یعنی PyCharm Professional Edition با یک نسخه رایگان ۳۰ روزه منتشر میشود. این حقیقت که PyCharm توسط شرکتهای بسیاری بزرگی مانند HP، پینترست (Pinterest)، «توئیتر» (Twitter)، «سیمنتک» (Symantec Corporation) و «گروپون» (Groupon) مورد استفاده قرار میگیرد حاکی از محبوبیت بالای آن است. برخی از ویژگیهای کلیدی PyCharm در ادامه بیان شدهاند.
- این محیط توسعه یکپارچه پایتون شامل کاملسازی کدها به صورت خلاقانه برای کلاسها، اشیا و کلیدواژهها است. همچنین، دارای قابلیت قرار دادن «تورفتگی» (Indentation) و قالببندی کد، قطعه کدهای قابل سفارشیسازی و قالبها است.
- پایچارم خطاها را در هنگام تایپ کد توسط کاربر، نمایش میدهد. همچنین، از PEP-8 برای پایتون بهره میبرد که به نوشتن کدهای تمییزی که پشتیبانی از آنها در دیگر زبانها آسان است کمک میکند.
- PyCharm از «بازسازی کد» (Refactoring) سریع و امن پشتیبانی میکند.
- این محیط توسعه یکپارچه دارای دیباگر برای پایتون و جاوااسکریپت با رابط کاربری گرافیکی است. کاربر میتوان تستها را با استفاده از اجرا کننده تست مبتنی بر رابط کاربری گرافیکی و دستیار کد بسازد و اجرا کند.
- PyCharm دارای نمایش مستندات/تعاریف سریع است که با بهرهگیری از آن کاربر میتواند مستندات یا تعاریف اشیا را در محلی بدون از دست دادن محتوا ببیند. همچنین، مستندات فراهم شده توسط JetBrains (+) جامع و با راهنماهای ویدئویی همراه هستند.
مهمترین ویژگی که این محیط توسعه یکپارچه را برای یادگیری ماشین مناسب میسازد پشتیبانی از کتابخانههایی مانند NumPy ،Matplotlib ،Scikit-Learn و Pandas است. ویژگیهایی مانند حالت تعاملی Matplotlib که هم در پایتون و هم کنسول دیباگر کار میکنند، میتوانند نمودارها را در زمان واقعی مدیریت، ترسیم و در آنها جستوجو کنند. همچنین، کاربر میتواند محیطهای متفاوتی (پایتون ۲.۷، پایتون ۳.۵، محیط مجازی) را بر اساس نوع پروژه تعریف کند. برای دانلود این محیط توسعه یکپارچه میتوان به سایت (+) آن مراجعه کرد.
اسپایدر
«اسپایدر» (SPYDER) سرنامی برای «Scientific PYthon Development EnviRonment» است. توسعهدهنده اصلی این محیط توسعه که به طور رسمی در ۱۸ اکتبر ۲۰۱۹ منتشر شد «پیر ریبه» (Pierre Raybaut) است.
Spyder به زبان پایتون نوشته شده و برخی از ویژگیهای کلیدی آن در ادامه بیان شدهاند.
- متنباز است.
- ویرایشگر آن از code introspection/تحلیل کد، تکمیل کد، انشعاب افقی و عمودی و تعریف goto پشتیبانی میکند.
- این محیط توسعه با فضای کاری کنسول IPython و پایتون منتشر میشود و از دیباگ کردن در زمان اجرا (هنگامی که کاربر کد را تایپ میکند خطاها نمایش داده میشوند) پشتیبانی میکند.
- این محیط توسعه دارای یک نمایشگر اسناد است که در آن اسناد مرتبط با کلاسها یا توابعی که در ویرایشگر یا کنسول فراخوانی میشوند نمایش داده میشوند.
- Spyder از قابلیت «جستوجوگر متغیر» (Variable Explorer) پشتیبانی میکند که با بهرهگیری از آن کاربر میتواند متغیرهایی را که در طول اجرای فایل از رابط کاربری گرافیکی ساخته شدهاند، مانند آرایه Numpy را جستوجو و ویرایش کند.
این محیط توسعه، Matplotlib ،Scipy ،NumPy و دیگر کتابخانههای علمی را یکپارچه میکند. Spyder هنگامی که به عنوان یک کنسول تعاملی برای ساخت و تست برنامههای کاربردی علمی و عددی به کار میرود و برای اسکریپتهایی که با بهرهگیری از کتابخانههایی مانند SciPy ،NumPy و Matplotlib ساخته میشوند گزینه فوقالعادهای محسوب میشود. علاوه بر اینها، Spyder یک نرمافزار سبک و ساده با نصب آسان است که مستندات همراه با جزئیات زیادی دارد. برای دانلود این محیط توسعه یکپارچه پایتون برای یادگیری ماشین میتوان به سایت (+) آن مراجعه کرد.
رودِئو
«رودِئو» (Rodeo) یک محیط توسعه یکپارچه ویژه انجام پروژههای یادگیری ماشین و علم داده در پایتون است. این محیط توسعه توسط Yhat ساخت شده است و از کرنل IPython استفاده میکند.
برخی از ویژگیهای کلیدی این IDE در ادامه مورد بررسی قرار گرفتهاند.
- جستوجو، مقایسه و تعامل با دیتافریمها و نمودارها را آسان میکند.
- ویرایشگر متن Rodeo دارای قابلیت «تکمیل خودکار» (Autocomplete)، «برجستهسازی نحو» (Syntax Highlighting) و پشتیبانی از IPython توکار است که کدنویسی را سریعتر میسازد.
- Rodeo با راهنمای پایتون یکپارچه شده منتشر میشود و دارای «تقلبنامههایی» (Cheat Sheets) برای ارجاع سریع به مباحث گوناگون است.
این محیط توسعه برای پژوهشگران و دانشمندانی که در R و محیط توسعه یکپارچه RStudio کار میکنند، مفید است. این محیط توسعه دارای ویژگیهایی مشابه Spyder است ولی فاقد ویژگی های گوناگون دیگری از جمله PEP 8 و برخی موارد دیگر است. احتمال دارد Rodeo در آینده با ویژگیهای جدیدی عرضه شود، زیرا در حال حاضر نسبتا جدید و در آغاز راه است. برای دانلود این محیط توسعه یکپارچه پایتون برای یادگیری ماشین میتوان به سایت (+) مراجعه کرد.
جینی
«جینی» (Geany) یک محیط توسعه یکپارچه پایتون است که توسط «انریکه توگلر» (Enrico Tröger) در C و ++C نوشته و اولین بار در تاریخ ۱۹ اکتبر ۲۰۰۵ منتشر شده است. جینی در واقع یک ویرایشگر متن سبک و چندسکویی محسوب میشود که دارای ویژگیهای پایهای یک IDE است و برای مثال نسخه ویندوز آن تنها ۱۴ مگابایت وزن دارد.
برخی از ویژگیهای کلیدی جینی در ادامه بیان شدهاند.
- ویرایشگر جینی از برجستهسازی متن و شمارهگذاری خطوط پشتیبانی میکند.
- این محیط توسعه با ویژگیهایی مانند تکمیل خودکار، بستن خودکار براکتها، بستن خودکار تگ HTML و XML همراه است.
- جینی دارای قابلیت «تا کردن کد» (Code Folding) و «ناوبری کد» (Code Navigation) است.
- کاربر با استفاده از Geany میتواند سیستمهایی برای کامپایل و اجرای کد با کمک کدهای خارجی بسازد.
برای دانلود این محیط توسعه یکپارچه پایتون برای یادگیری ماشین میتوان به سایت (+) مراجعه کرد.
شایان توجه است افرادی که با RStudio آشنا هستند و به دنبال گزینهای مشابه برای پایتون میگردند، این محیط توسعه یکپارچه از نسخه 0.98.932 که در ۱۸ ژوئن سال ۲۰۱۴ منتشر شد پشتیبانی از پایتون را نیز اضافه کرده است. البته میزان پشتیبانی از پایتون در مقایسه با R در این محیط توسعه یکپارچه بسیار ناچیز محسوب میشود. لازم به ذکر است لیست ارائه شده در بالا جامع نیست و محیطهای توسعه یکپارچه دیگری نیز برای پایتون وجود دارند که از آن جمله میتوان به Wing ،Eric ،PyDev اشاره کرد.
اگر مطلب بالا برای شما مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- مجموعه آموزشهای هوش محاسباتی
- مجموعه آموزشهای یادگیری ماشین و بازشناسی الگو
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- آموزش برنامهنویسی R و نرمافزار R Studio
- مجموعه آموزشهای برنامه نویسی متلب (MATLAB)
^^
سلام، اول ممنون از سایت خوبتون.
ببخشید اگر سوالم خیلی ابتدایی هست، آیا درست متوجه شدم: برای برنامه نویسی به زبان پایتون در زمینه علم داده باید هم خود نرم افزار پایتون، هم آناکوندا و هم مثلا پایچارم یا اسپایدر رو نصب کنیم، درسته ؟!
یعنی خود پایتون که برا کامپایل، آناکوندا برای دسترسی به کتابخانه ها و مثلا پایچارم یا اسپایدر به عنوان محیط کار مورد نیاز هست، درسته؟
خیلی ممنون میشم راهنماییم کنید
با سلام و احترام؛
صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاسگزاریم.
آناکوندا توزیعی از پایتون و زبان R برای محاسبات علمی (علم داده، یادگیری ماشین، پردازش دادهها در مقیاس وسیع، تجزیه-تحلیل پیشگویانه و سایر موارد) است. هدف آناکوندا سادهسازی مدیریت پکیجها و استقرار برنامهها است. توزیع آناکوندا حاوی بستهها یا همان پکیجهای علم داده مناسب برای ویندوز، لینوکس و مک OS است. این پلتفرم به وسیله شرکت آناکوندا مدیریت و نگهداری میشود. توزیع آناکوندا به همراه بیش از ۲۵۰ پکیج نصب شده به صورت خودکار ارائه میشود. بنابراین پایتون هم به همراه آناکوندا نصب میشود و نیازی به نصب جداگانه آن وجود ندارد.
برای محیط توسعه و ویرایش کدها هم میتوانید از نرمافزارهای مختلفی مثل اتم، نینجا یا VS Code استفاده کنید. البته شرکت آناکوندا استفاده از Jupyter Notebook را پیشنهاد میدهد که یک محیط توسعه منبع آزاد و مبتنی بر وب است. Spyder هممحیط توسعهای است که بهطور پیشفرض داخل توزیع آناکوندا در دسترس قرار دارد و در قالب بستهای جامع به همراه همه آنچه ارائه میشود که برای شروع مورد نیاز است.
PyCharm و آناکوندا ابزارهایی مستقل از هم هستند، اما میتوان از آنها به همراه هم برای پروژههایی استفاده کرد که در آنها امکان بهرهوری از هر دو وجود دارد. pyCharm یک محیط توسعه یکپارچه یا همان IDE به حساب میآید که برای سادهسازی نوشتن کدها پایتون ساخته شده است و آناکوندا هم توزیعی از پایتون به حساب میآید که بر پروژههای مرتبط با دادهها تمرکز دارد. در واقع برای علم داده و یادگیری ماشین بهتر است به جای Pycharm از آناکوندا استفاده کنید.
برای شما آرزوی سلامتی و موفقیت داریم.
ایا میشه با vs code هم انجام داد؟؟؟
ای کاش پیشنهاد نویسنده هم در متن وجود داشت…
زمان زیادی برای همه ی ما هدر می رود
یا به خاطر امتحان نکردن تمام گزینه ها و انتخاب نکردن بهترین نرم افزار محیط توسعه
یا به خاطر امتحان کردن تمام نرم افزارهای محیط توسعه برای هر کدام از همه ی حتی مخاطبان شما….
ای کاش یک نفر تست می کرد و نظر لااقل شخصی اش را می نوشت….
با سلام؛
از همراهی شما با مجله فرادرس سپاسگزاریم. اختلاف نظر پیرامون سیستمعاملها، زبانهای برنامهنویسی، IDEها و دیگر موارد، همواره در میان فعالان حوزه فناوری اطلاعات وجود داشته است. ارائه اظهار نظر شخصی یا انتخاب یک یا چند مورد به عنوان بهترین گزینهها، صرفا به مناقشات دامن زده و مطلب را از جنبه علمی خود خارج میکند. بهترین راه برای انتخاب یک محیط توسعه مناسب آن است که کاربر نیازهای خود را بشناسد و پس از مطالعه پیرامون قابلیتها، مزایا و معایب محیطهای توسعه محبوب موجود، یکی از آنها را که پاسخگوی نیاز او هستند برای آغاز کار برگزیند.
در گذر زمان و با قرارگیری در فضای برنامهنویسی و کسب تجربه بیشتر، توسعهدهندگان معمولا با میحطهای توسعه جدید نیز کار میکنند و آشنا میشوند و بدین شکل محبوبترین گزینه را برای خودشان، انتخاب میکنند. باید توجه داشت که هیچ الزامی ندارد فرد برای همیشه از یک محیط توسعه استفاده کند و در گذر زمان، متناسب با محصولات جدید موجود در بازار، نیازهای خود و دیگر معیارها، میتواند به انتخاب یک محیط توسعه مناسب خود بپردازد.
پیروز، شاد و تندرست باشید.