Python for Data Science
314 subscribers
127 photos
16 videos
12 files
61 links
اطلاعات مفید جهت یادگیری پایتون برای علم داده
Download Telegram
⚫️ فرا رسیدن تاسوعا و عاشورای حسینی بر محبان آن حضرت تسلیت باد.

🔎 @py4ds
📗 #معرفی_کتاب

Dive Into Design Patterns

کتاب بسیار خوبی در زمینه معرفی الگو‌های طراحی (Design Pattern) که میتونه توی طراحی نرم‌افزارها بهتون کمک بکنه
🔎 @py4ds
🤩1
🔹نتیجه‌ی نداشتن محیط تست میشه همین!

🔎 @py4ds
📗 #معرفی_کتاب

Data Structures & Algorithms in Python

کتاب بسیار خوبی در زمینه معرفی انواع ساختمان‌های داده که میتونه برای یادگیری بهتر اونها خصوصا در زبان پایتون بهتون کمک کنه
بخش درخت‌ها و الگوریتم‌ها چیزی هست که عموما در مصاحبه‌های فنی شرکت‌های مهم ازشون سوال میشه.
🔎 @py4ds
🤩1
⬛️ سلام بر کسی که جانش را در راه خدا فدا کرد تا مردم را از جهالت و سرگشتگی گمراهی نجات دهد.

▪️ اربعین حسینی تسلیت باد.
🔎 @py4ds
👍1
📗 #معرفی_کتاب
Effective Pandas
Matt Harrison

🔺کتاب Effective Pandas قطعا یکی از بهترین منابع یادگیری کتابخانه Pandas هستش

🔺این کتاب به دوستانی که قصد مسلط شدن به Pandas رو دارن توصیه میشه

🔎 @py4ds
🤩1
Effective_Pandas_Patterns_for_Data_Manipulation.pdf
38.1 MB
📗 Effective Pandas
Matt Harrison

🔎 @py4ds
🤩1
🔹 اگر تجربه کار با تکنولوژی‌هایی مثل #داکر یا #کوبرنتیز رو داشته باشید قطعاً با تحریم‌هایی مبنی بر اجازه پول(pull) کردن ایمیج ها از روی سرویس‌هایی مثل داکرهاب رو داشتید. یا مثلاً مطالعه داکیومنت بعضی ابزارها یا زبانهای برنامه نویسی!

🔺به نظرم آمریکا بهتره برای نشون دادن حسن نیت تحریم‌های اینچنینی رو برداره و اجازه دسترسی به سایتها رو برای ایران باز کنه. چون این مسئله عمدتاً چالش‌هایی رو برای افرادی از طیف توسعه‌دهنده‌ها ایجاد می‌کنه!

🔺توسعه دهندگان ایرانی برای دور زدن این تحریم‌ها عموما از سرویس‌هایی شبیه https://shecan.ir یا پروکسی کَش‌ها استفاده می‌کنن. اما خب یه جاهایی هم مشکل به همین راحتی حل نمیشه!

🔺نمونه سایت‌هایی که شامل این تحریم‌ها هستن کم نیست. سایتها به ظاهر ممکنه باز هم بشن اما امکان دانلود یا pull کردن برای IP ایران ندارن.

https://hub.docker.com/
https://kubernetes.io/

و سایت‌هایی که مربوط به زبانهای برنامه نویسی هستند مثل:
https://dash.plotly.com/
https://go.dev/doc/

🔺دوست دیگه‌ای می‌گفت بعضی سرویس‌ها حتی روی ip‌های ایران throttling IP فعال کرده‌ان و سرعت دانلود را تا حد زیادی کاهش دادن!

🔎 @py4ds
👍4
حدود یک ساعت مونده به انتشار رسمی پایتون 3.11
این رویداد از طریق این لینک یوتوب به صورت زنده پخش میشه!

ویژگی‌های خیلی خوب و جالبی به این نسخه اضافه شده و همچنین عملکردش نسبت به پایتون 3.10 بین ۱۰ تا ۶۰ درصد در موارد مختلف بهبود پیدا کرده.
با این تفاسیر این نسخه شروع یه فصل جدید در عمر این زبان برنامه‌نویسی خواهد بود.
به شخصه منتظر انتشار پایتون 3.12 و اوبونتو 24.04 هستم. اتفاقات باحال‌تری در راه هست...
ویژگی‌های پایتون جدید در یک نگاه:

+ Fine-grained error location in tracebacks.
+ ExceptionGroup and the new except* syntax to handle it.
+ A new module to parse TOML.
+ Atomic grouping and possessive quantifiers for regexes.
+ Significant performance improvements.
+ New Self type.
+ Variadic generics.
+ Data class transforms.

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

🔎 @py4ds
🔥1
بالاخره نسخه پایدار پایتون 3.11 منتشر شد.
به زودی مجموعه پست‌های کوتاهی در مورد برخی ویژگی‌های جدیدش براتون ارسال می‌کنم.

🔎 @py4ds
🔥1
🔺 اولین گام از مقایسه امکانات جدید پایتون 3.11 مقایسه در عملکرد اون هست.
🔹این نسخه از پایتون با استفاده از پروژه‌ی Faster CPython سرعت خیلی بهتری نسبت به نسخه قبل پیدا کرده(البته در مجموع بنیاد پایتون از نسخه 3.8 به بعد تمرکز اصلی خودش رو روی بهبود عملکرد گذاشته)

👨‍💻تصویر بالا نمونه‌ای از مقایسه عملکرد پایتون 3.11 با 3.10 هست که با استفاده از این پروژه‌ انجامش دادم.
توی پروژه فوق میتونید با در نظر گرفتن یه سری نکته هر نسخه‌ای رو با نسخه دیگه مقایسه کنید!

📊نتیجه‌ی این مقایسه بهبود حدود بیست درصدی رو نشون میده که با توجه به اجرا شدن در محیط داکر به نظر میرسه همون عدد رسمی ذکر شده(۲۵ درصد) درست هست و همونطور که در تصویر می‌بینید بعضی ماژولها بیش از ۵۰ درصد بهبود عملکرد دارن!

#py311

🔎 @py4ds
👍4
🔺 بهبود پیغام‌های خطا یکی از بهترین تغییرات در پایتون 3.11 هست.
💡همون طور که می‌بینید دقیقا به محلی از کد که در اون خطا رخ داده اشاره می‌کنه!
🔹نوشتن کدهای پایتونی با استفاده از عبارات(که ممکنه گاهی هم طولانی بشه) باعث شده بود که پیدا کردن محل دقیق خطا در یک عبارت قدری مشکل باشه که این مشکل با این تغییر حل شد!
سورس کد
#py311

🔎 @py4ds
👏1
🔺 ویژگی مهم بعدی برای کسانی که برنامه نویسی async انجام میدن خیلی به درد بخور هست.
👉 Exception Group

💡اگر کدی داشته باشید که به صورت async اجرا میشه و باید خطاهای به وجود اومده توی همه یا برخی از تردها رو مدیریت کنید این ویژگی خیلی بهتون کمک می‌کنه!
📌با این ویژگی میشه به صورت یکجا تمام خطاهای به وجود اومده از طریق مثلا asyncio.gather رو برگردوند!
📃 در این کد (با کامنت تابع خط ۳۹ و آن‌کامنت تابع خط ۳۵) چند تابع مختلف به صورت async (و مستقل از هم) اجرا شده و اونها هم خطا دادن؛ خطاهای Exception Group توی تصویر بالا نشون داده شده!

سوال: چطوری Exception Group رو هندل کنیم؟ آیا الگوی try-except جواب میده؟
❗️جواب: خیر! برای مدیریت Exception Group ها باید تمام except ها رو به صورت *except بنویسید!

🔹سورس این کد نمونه‌ای از مدیریت خطای Exception Group هست!
#py311

🔎 @py4ds
👏1
🔺ویژگی ‌add_note to Exceptions

تا حالا شده بخواید توی حالتی که خطا رو مدیریت می‌کنید متن کمکی اضافه کنید؟

❗️برای اینکار باید کمی کثیف کاری کنید و خطایی با پیغام مناسب برای خودتون بسازید اما حالا با ویژگی جدید پایتون 3.11 میتونید به هر خطایی که تولید میشه بدون هیچ کد اضافه‌ای و فقط با یک متد یه متن مناسب اضافه کنید!
سورس کد

این خصوصیت می‌تونه توی کار با کتابخانه‌هایی مثل hypothesis که برای تست نویسی خصوصیتی کاربرد دارن مفید باشه!
#py311
🔎 @py4ds
👏1
Python for Data Science
🔺 ویژگی مهم بعدی برای کسانی که برنامه نویسی async انجام میدن خیلی به درد بخور هست. 👉 Exception Group 💡اگر کدی داشته باشید که به صورت async اجرا میشه و باید خطاهای به وجود اومده توی همه یا برخی از تردها رو مدیریت کنید این ویژگی خیلی بهتون کمک می‌کنه! 📌با این…
🔺مفهوم packing, unpacking توی پایتون از مدتها قبل با استفاده از * شناخته شده بود!

🔹ابتکار جالب این بنیاد در بکارگیری این علامت برای Exception Group ها به نظرم خیلی هوشمندانه هست!

👨🏻‍🏫به نظرم در آموزش پایتون یکی از مهمترین چیزهایی که باید به خوبی رووش تاکید بشه همین علامت و کاربردهای مختلف اون هست!

🔎 @py4ds
👏1
🔺 ویژگی جدید پایتون اضافه شدن دو تابع جدید به کتابخانه داخلی math هست!
۱. تابع exp2 برای محاسبه ۲ به توان x
۲. تابع cbrt برای محاسبه ریشه سوم x

سورس کد
#py311
🔎 @py4ds
👏1