Python for Data Science
315 subscribers
127 photos
16 videos
12 files
61 links
اطلاعات مفید جهت یادگیری پایتون برای علم داده
Download Telegram
📗 #معرفی_کتاب
Python Testing with pytest

🔺کتابی خوب برای تمرین تست نویسی در پایتون

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

🔺کتابی خوب برای یادگیری دقیق پایتون

🔎 @py4ds
🤩1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
🐱 گیت چطور کار میکنه ؟

گیت: ابزار کنترل نسخه توزیع‌شده‌ای است که تغییرات اعمال‌شده به کد شما را در طول زمان رصد می‌کند. گیت امکان پیگیری تغییرات به مخزن کد شما را ساده می‌کند و امکان همکاری در پروژه‌ها با دیگران را فراهم می‌کند. این ابزار توسط لینوس توروالدز در سال ۲۰۰۵ برای توسعه کرنل لینوکس ایجاد شد، و سایر توسعه‌دهندگان کرنل به توسعه اولیه آن کمک کردند.

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

گیت سه فضای ذخیره‌سازی دارد: دایرکتوری کاری، محیط استیجینگ و مخزن محلی.

1. 𝗪𝗼𝗿𝗸𝗶𝗻𝗴 𝗗𝗶𝗿𝗲𝗰𝘁𝗼𝗿𝘆:
اینجا جایی است که کار می‌کنید و فایل‌های شما زندگی می‌کنند (همچنین "بدون پیگیری" نیز نامیده می‌شوند). تمام تغییرات فایل‌ها در اینجا علامت‌گذاری خواهند شد؛ اگر به گیت ذخیره نشوند، آنها را از دست خواهید داد. دلیل این امر این است که گیت از این فایل‌ها آگاه نیست.

2. 𝗦𝘁𝗮𝗴𝗶𝗻𝗴 𝗔𝗿𝗲𝗮:
وقتی تغییرات خود را با دستور git add ذخیره می‌کنید، گیت شروع به پیگیری و ذخیره تغییرات شما با فایل‌ها می‌کند. این تغییرات در دایرکتوری .git ذخیره می‌شوند. سپس، فایل‌ها از دایرکتوری کاری به محیط استیجینگ منتقل می‌شوند. با این حال، اگر این فایل‌ها را تغییر دهید، گیت از آنها خبر نخواهد داشت؛ شما باید به گیت اعلام کنید که این تغییرات را توجه کند.

3. 𝗟𝗼𝗰𝗮𝗹 𝗥𝗲𝗽𝗼𝘀𝗶𝘁𝗼𝗿𝘆:
اینجاست که همه چیز (کمیت‌ها) در دایرکتوری .git ذخیره می‌شود. وقتی می‌خواهید فایل‌های خود را از محیط استیجینگ به مخزن محلی انتقال دهید، می‌توانید از دستور git commit استفاده کنید. پس از این کار، محیط استیجینگ شما خالی خواهد شد. اگر بخواهید ببینید چه چیزی در مخزن محلی وجود دارد، دستور git log را امتحان کنید.

بعضی از دستورات اصلی گیت عبارتند از:

- git init: ایجاد یک مخزن جدید گیت در دایرکتوری
- git branch: ایجاد یک شاخه محلی جدید
- git checkout: تغییر شاخه‌ها
- git add: افزودن یک فایل جدید به محیط استیجینگ
- git commit: افزودن تغییرات استیجینگ شده به مخزن محلی
- git pull: برداشتن کد از مخزن از راه دور به دایرکتوری محلی
- git push: ارسال تغییرات مخزن محلی به مخزن از راه دور
- git status: نمایش فایل‌هایی که در حال پیگیری هستند (و غیرپیگیری شده‌اند)
- git diff: مشاهده تفاوت‌های واقعی در کد بین دایرکتوری کاری و محیط استیجینگ

.
@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
👀 نگاهی به چند نوع معماری توسعه نرم افزار :‌


همانطور که از ساختار مونولوتیک به N-tier و سپس به میکروسرویس‌ها حرکت می‌کنیم، برخی چیزها را به دست می‌آوریم و برخی دیگر را از دست می‌دهیم.

بیایید امروز به بررسی سه سبک مهم معماری بپردازیم: مونولوتیک، N-tier و میکروسرویس‌ها -

1. 𝗠𝗼𝗻𝗼𝗹𝗶𝘁𝗵:
- توصیف: معماری مونولوتیک یک برنامه نرم‌افزاری یک‌پله‌ای است که در آن تمام اجزا (رابط کاربری، برنامه سمت سرور، پایگاه داده) در یک کد منبع ترکیب شده‌اند.
- مزایا: سادگی، آسانی در توسعه، آزمایش و استقرار. مناسب برای برنامه‌های کوچک با ویژگی‌ها و اجزا کمتر.
- معایب: مشکل در مقیاس‌پذیری، چرخش‌های انتشار کند، خطر شکست کامل سیستم به دلیل خرابی یک جزء، اتصال محکم اجزا باعث می‌شود تغییرات بدون تأثیر بر سایر بخش‌ها دشوارتر باشد.

2. 𝗡-𝘁𝗶𝗲𝗿:
- توصیف: معماری N-tier یک برنامه را به چندین لایه (یا لایه‌ها) تقسیم می‌کند که مسئولیت‌های خاصی را اداره می‌کنند، مانند ارائه (رابط کاربری)، منطق کسب و کار (لایه برنامه) و ذخیره داده (لایه پایگاه داده). هر لایه می‌تواند بر روی یک سرور جداگانه اجرا شود.
- مزایا: جداسازی بهتر از نگرانی‌ها، آسانی در مقیاس‌پذیری و حفظ لایه‌های جداگانه، انعطاف در انتخاب فناوری برای هر لایه.
- معایب: پیچیدگی بیشتر از مونولوتیک، نیاز به هماهنگی خوب بین لایه‌ها، ممکن است منجر به محدودیت‌های عملکردی شود اگر به درستی طراحی نشوند.

3. 𝗠𝗶𝗰𝗿𝗼𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀:
- توصیف: معماری میکروسرویس‌ها یک برنامه را به خدمات کوچک و در جریان از هم جدا شده تقسیم می‌کند، هرکدام مسئولیتی خاص در کسب و کار دارند. این خدمات می‌توانند به طور مستقل توسعه، استقرار و مقیاس‌پذیری یابند.
- مزایا: قابلیت مقیاس‌پذیری، انعطاف، آسانی در حفظ و به‌روزرسانی خدمات خاص، امکان چرخش‌های انتشار سریع‌تر، امکان استفاده از فناوری‌های مختلف برای خدمات مختلف.
- معایب: پیچیدگی در مدیریت خدمات چندگانه، تأخیر در شبکه، نیاز به هماهنگی و نظارت قوی بر خدمات، احتمال عدم انطباق داده به دلیل ذخیره داده‌های توزیع‌شده.

انتخاب معماری به عوامل مختلفی مانند اندازه و پیچیدگی برنامه، اندازه تیم، مجموعه فناوری و نیازهای مقیاس‌پذیری بستگی دارد.

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

معماری N-tier تاریخچه‌ای در دنیای توسعه نرم‌افزار دارد و قبل از ظهور میکروسرویس‌ها بسیار محبوب بود.

معماری N-tier در میانه قرار دارد، جداسازی بهتر از نگرانی‌ها و مقیاس‌پذیری نسبت به مونولوتیک را ارائه می‌دهد در حالی که کم‌پیچیده‌تر از میکروسرویس‌ها است.

⚠️ نکته مهم : انتخاب تکنولوژی کاملا به پروژه شما بستگی دارد و نمیشه گفت همیشه فلان معماری مناسب تره

.
@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
😱1
🖤 اربعین حسینی تسلیت باد.
🔎 @py4ds
۲۵۶ ُ‌مین روز سال، روز برنامه‌نویس مبارک. 🧑‍💻

🔎 @py4ds
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
پایتون ۳.۱۲ اومده برید نصب کنید صفا کنید. احتمالا مشکل خاصی توی آپگرید پروداکشن ها به این نسخه نداشته باشیم

به طور کلی توی خیلی از قسمت ها افزایش پروفورمنس داشته. مثلا توی async سرعت چند برابر شده . یا توی slice کردن یک دیتای باینری میشه از مموری ویو استفاده کرد و فضای رم اشغال نشه با هر slice و باز هم یکسری تغییرات بوده روی تایپینگ ها و سینتکس جنریک متد ها شکیل تر شده. اررور های سینتکسی توضیحات بهتری دارن و fstring ها بهبود داشتن و مشکلاتی و محدودیت هایی که داشتن برطرف شده. ایشونم itertools یک متد جدید اضاف کرده batched که چیز جالبیه و مثلا یک دیتا دارید میخواید سه تا سه تا جدا بشه تهش دوتا باقی میمونه. خیلی شیک جدا میکنه براتون.یکسری بهبود ها روی عملیات sum بوده

یک چیزی هم توی c-api اضافه کردن ولی توی پایتون گفتن ورژن بعدی میاریمش 😐😂 اینطوریه که شما میتونیدخیلی بهتر از core های cpu استفاده کنید توی پروسس هاتون و هر پروسس میتونه یک gil جداگانه داشته باشه.

توضیحات کامل :
https://docs.python.org/3.12/whatsnew/3.12.html
💠 @SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
Python for Data Science
🔺 اولین گام از مقایسه امکانات جدید پایتون 3.11 مقایسه در عملکرد اون هست. 🔹این نسخه از پایتون با استفاده از پروژه‌ی Faster CPython سرعت خیلی بهتری نسبت به نسخه قبل پیدا کرده(البته در مجموع بنیاد پایتون از نسخه 3.8 به بعد تمرکز اصلی خودش رو روی بهبود عملکرد…
🔺 اولین گام از مقایسه امکانات جدید پایتون 3.12 مقایسه در عملکرد اون هست.
🔹این نسخه از پایتون بر پیاده سازی تغییراتی که روی GIL (Global Interpreter Lock) تمرکز کرده.

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

📊نتیجه‌ی این مقایسه بهبود خاصی رو نشون نمیده البته همونطور که در تصویر می‌بینید بعضی ماژولها بیش از ۲ برابر بهبود عملکرد دارن!

#py312

🔎 @py4ds
Channel name was changed to «🇵🇸Python for Data Science»
#Quiz

نتیجه سلول آخر چیست؟
🔎 @py4ds
Python for Data Science
#Quiz نتیجه سلول آخر چیست؟ 🔎 @py4ds
نتیجه سلول آخر در تصویر فوق چیست؟
Anonymous Quiz
45%
True
55%
False
Python for Data Science
☺️ 🔎 @py4ds
نتیجه سلول آخر چیست؟🙃
Anonymous Quiz
50%
True
50%
False
Python for Data Science
نتیجه سلول آخر در تصویر فوق چیست؟
نتیجه دو نظر سنجی
https://t.iss.one/py4ds/234
و
https://t.iss.one/py4ds/236
خیلی جالب هست
خصوصا در نظرسنجی دوم که بر اساس نتیجه‌گیری افراد از جواب نظرسنجی اولی بوده و همچنین که افراد بیشتری هم بهش جواب دادن

💡حالا بریم سراغ تحلیل
🗝جواب خلاصه:
در پایتون مبحثی به نام integer interning وجود داره که میتونید اینجا ببینید.

🔑جواب طولانی:
زمانی که در هر نوع REPL در پایتون مثل شل خودش یا شل ipython یا موارد مشابه دارید کدی رو اجرا میکنید که نیاز به اعداد صحیح داره، پایتون نمیدونه که شما قراره چه اعدادی رو استفاده کنید پس به صورت پیشفرض میاد و تمام اعداد صحیح در بازه ۵- تا ۲۵۶ رو می‌سازه تا حافظه جدیدی براشون در نظر گرفته نشه. در کل طول اجرای شل هم به همون آدرسها ارجاع میده.

🔺پس با این حساب در نظر سنجی اول عدد ۵۰۰ که در این بازه نیست نتیجه False داره، اما در نظر سنجی دوم نتیجه True هست.

🔴اما چه اتفاقی می‌افته اگر شما همین دو کد رو در حالتی که در یک فایل(ماژول) نوشته شده اجرا کنید؟
ج:پایتون در اینجا تمام کد رو میبینه پس نتیجه هر دو حالت فوق True هست.

🔎 @py4ds
Forwarded from TechTube 𝕏 تک توب
شرکت گوگل از قدرتمندترین هوش مصنوعی خودش به نام Gemini برای رقابت با مدل GPT-4 رونمایی کرد.

به گفته مدیرعامل گوگل هوش مصنوعی Gemini نقطه عطفی برای این شرکت محسوب میشه و قدرت بالای اون روی تمام محصولات گوگل تاثیر خواهد گذاشت و اونهارو بهتر خواهد کرد.

هوش مصنوعی Gemini در سه مدل عرضه میشه:
مدل Nano کوچکترین و بهینه ترین اونهاست که میتونه به صورت افلاین در گوشیهای اندرویدی استفاده بشه.
مدل Pro مدل بهینه و سریعی هست که قدرتی در حد GPT 3.5 داره و در کارهای مختلف میشه از اون استفاده کرد و در طیف وسیعی از محصولات گوگل از جمله سرچ، کروم و غیره از اون استفاده خواهد شد.
مدل Ultra که رقیب GPT-4 هست، قویترین و پیشرفته ترین مدل ساخته شده توسط گوگله و برای حل دستورات پیچیده از اون استفاده خواهد شد.

برخلاف بقیه مدلها که عمدتا روی متن تمرین داده شدن، Gemini به طور ترکیبی روی متن، عکس، ویدیو و فایلهای صوتی تمرین داده شده بنابراین درک چند حسی بالایی داره و میتونه درخواستهایی همراه با ورودی متنی، تصویری و صوتی رو با دقت بالایی همراه با قدرت استدلال بالا جواب بده.

مدل اولترای Gemini در 30 تست از 32 تست استاندارد از هوش مصنوعی GPT-4، قویترین مدل موجود، قویتر ظاهر شده و بالاخره بعد از ماه ها شاهد مدلی خواهیم بود که از این مدل میتونه پیشرفته تر باشه.

مدل Nano از طریق اپدیتی روی گوشیهای پیکسل برای قابلیتهایی مثل ارائه پیشنهادات بهتر در جواب مسیجها عرضه شده. مدل Pro در حال حاضر روی هوش مصنوعی بارد فعال شده و میتونید از حالا از اون استفاده کنید. مدل Ultra هم از اوایل سال میلادی اینده در اختیار مشتریان این شرکت قرار خواهد گرفت.

🔎 blog.google

📍 @TechTube