آموزش پایتون
88 subscribers
281 photos
21 videos
81 files
178 links
ارتباط با ما:
@learnpythonicyBot

لینک گروه چت:
https://t.me/learnpythonicychat

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
✔️ طبقه‌بندي سرطان پستان با PCA و رگرسیون لجستیک

این کد در دو مرحله، طبقه‌بندی روی داده‌های سرطان پستان را انجام می‌دهد:

⤵️ مرحله اول
1. داده‌های سرطان پستان از sklearn بارگیری می‌شود.
2. داده‌ها به مجموعه‌های آموزش و آزمون تقسیم می‌شوند.
3. یک مدل رگرسیون لجستیک آموزش داده می‌شود.
4. دقت مدل روی داده‌های آموزش و آزمون محاسبه و چاپ می‌شود.

⤵️ مرحله دوم
1. همان داده‌ها با StandardScaler نرمال‌سازی می‌شوند.
2. با استفاده از PCA بعد داده‌ها به 2 مولفه اصلی کاهش می‌یابد.
3. مجدداً داده‌ها تقسیم و مدل رگرسیون لجستیک آموزش داده می‌شود.
4. دقت مدل جدید محاسبه و چاپ می‌شود.

هدف مقایسه عملکرد مدل قبل و بعد از کاهش ابعاد با PCA است. این کد معمولاً برای نمایش تأثیر پیش‌پردازش داده و کاهش ابعاد بر عملکرد مدل‌های یادگیری ماشین استفاده می‌شود.

👇کد در کامنت

#pandas | #sklearn | #load_breast_cancer | @LearnPythonIcy
نمونه پروژه‌های پایتون از مبتدی تا پیشرفته! 👇
✔️ پروژه‌های پایتون از مبتدی تا پیشرفته!

اگر می‌خواهید پایتون را به صورت عملی یاد بگیرید، بهترین راه ساختن پروژه‌های واقعی است! در این پست ایده‌هایی از ساده تا حرفه‌ای برای شما آماده کرده‌ام:

🔹 سطح مبتدی (آشنایی با مبانی پایتون)

1️⃣ ماشین حساب ساده - عملیات پایه ریاضی
2️⃣ تبدیل واحد (دما، وزن، طول) - مثل سانتی‌گراد به فارنهایت
3️⃣ بازی حدس عدد - کامپیوتر یک عدد تصادفی انتخاب می‌کند و کاربر باید حدس بزند
4️⃣ لیست کارها (To-Do List) - افزودن، حذف و نمایش تسک‌ها

🔸 سطح متوسط (کار با فایل‌ها، کتابخانه‌ها و داده‌ها)

5️⃣ مدیریت مخاطبان (دفترچه تلفن) - ذخیره و بازیابی اطلاعات از فایل
6️⃣ وب‌اسکرپر ساده - استخراج داده از یک صفحه وب با requests و BeautifulSoup
7️⃣ پیش‌بینی آب و هوا - استفاده از APIهای رایگان مثل OpenWeatherMap
8️⃣ ربات تلگرام ساده - پاسخگویی خودکار با کتابخانه python-telegram-bot

🔺 سطح پیشرفته (پروژه‌های واقعی و پیچیده)

9️⃣ سیستم رزرو بلیط سینما - با پایگاه داده و رابط کاربری (Tkinter یا Django)
🔟 پلتفرم وب بلاگ - با جنگو یا Flask (احراز کاربر، نظرات، پست‌ها)
1️⃣1️⃣ تشخیص چهره یا اشیا - با OpenCV و یادگیری ماشین
2️⃣1️⃣ تریدر خودکار ارز دیجیتال - تحلیل داده و APIنویسی (مثل Binance API)

💡 نکته: هرچه جلوتر بروید، چالش‌ها جذاب‌تر می‌شوند!

📌 شما چه پروژه‌ای ساخته‌اید؟ زیر همین پست ایده‌های خود را با ما به اشتراک بگذارید! 👇

#یادگیری_عملی
#project_time | @Learnpythonicy
👍1
✔️ ۵ ترفند جادویی در پردازش تصویر با پایتون (OpenCV + PIL)

پردازش تصویر یکی از جذاب‌ترین بخش‌های برنامه‌نویسی است. در اینجا تکنیک‌های کاربردی را با کتابخانه‌های محبوب پایتون بررسی می‌کنیم:


1️⃣چرخش تصویر با حاشیه‌های هوشمند

import cv2
import numpy as np

img = cv2.imread('image.jpg')
assert img is not None, "تصویر یافت نشد!" # بررسی وجود فایل
rows, cols = img.shape[:2]

M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)
rotated = cv2.warpAffine(img, M, (cols, rows), borderMode=cv2.BORDER_REFLECT)
cv2.imwrite('rotated.jpg', rotated)

بهینه‌سازی:
- اضافه کردن assert برای بررسی وجود فایل.
- ذخیره خودکار خروجی با imwrite.


2️⃣ فیلتر ترکیبی (Edge Detection + Blur)

from PIL import Image, ImageFilter

image = Image.open('image.jpg')
edges = image.filter(ImageFilter.FIND_EDGES()) # تابع باید با حروف کوچک باشد: FIND_EDGES → FIND_EDGES
blurred_edges = edges.filter(ImageFilter.GaussianBlur(radius=2))
blurred_edges.save('edges_blurred.jpg')


3️⃣ تغییر رنگ‌های خاص با HSV

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
mask = cv2.inRange(hsv, lower_red, upper_red)
img[mask > 0] = [0, 255, 0] # تغییر رنگ قرمز به سبز
cv2.imwrite('color_changed.jpg', img)

نکته:
- برای تشخیص بهتر قرمز، محدوده [170, 100, 100] تا [180, 255, 255] را نیز اضافه کنید.


4️⃣ تصحیح خودکار نور

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
equalized = cv2.equalizeHist(gray)
cv2.imwrite('equalized_gray.jpg', equalized)

# نسخه رنگی:
yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
yuv[:,:,0] = cv2.equalizeHist(yuv[:,:,0])
equalized_color = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR)
cv2.imwrite('equalized_color.jpg', equalized_color)



5️⃣ تشخیص چهره + تار کردن پس‌زمینه

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

mask = np.zeros_like(img)
for (x,y,w,h) in faces:
mask[y:y+h, x:x+w] = img[y:y+h, x:x+w] # حفظ چهره
blurred_bg = cv2.GaussianBlur(img, (25,25), 0)
result = np.where(mask==0, blurred_bg, mask) # ترکیب با ماسک
cv2.imwrite('blurred_bg.jpg', result)


📚 کتابخانه‌های پیشنهادی
- OpenCV: برای پردازش حرفه‌ای تصویر.
- Pillow: برای عملیات ساده‌تر.
- scikit-image: برای الگوریتم‌های پیشرفته (مثل exposure.equalize_adapthist).
- matplotlib: برای نمایش گرافیکی نتایج.

#PythonMagic | #بینایی_ماشین |@LearnPythonicy
✔️ پیدا کردن حروف منحصر به فرد در یک رشته

برای پیدا کردن حروف منحصر به فرد (حذف کاراکترهای تکراری از متن) در یک رشته، معمولاً از حلقه‌ها و ساختارهای شرطی استفاده می‌کنیم:

unique_chars = []
for char in my_string:
if char not in unique_chars:
unique_chars.append(char)

اما پایتون یک روش حرفه‌ای و بهینه‌تر ارائه می‌دهد:

unique_chars = list(set(my_string))


👀 چرا این روش کار می‌کند؟
- تابع set() به طور خودکار تمام عناصر تکراری را حذف می‌کند.
- با تبدیل نتیجه به لیست، خروجی مورد نظر ما را می‌دهد.

نکته:
اگر ترتیب حروف مهم است، می‌توانید از dict استفاده کنید:

unique_ordered = list(dict.fromkeys(my_string))


این روش:
1. سریع‌تر و خوانا تر است
2. برای رشته‌های طولانی کارایی بهتری دارد
3. کد را حرفه‌ای‌تر نشان می‌دهد

#PythonTricks | #بدانیم | @LearnPythonIcy
✔️ محاسبه سریع فیبوناچی با روش ماتریسی!

برای محاسبه دنباله فیبوناچی معمولاً از روش بازگشتی استفاده می‌کنیم:
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)


اما یک روش حرفه‌ای با پیچیدگی O(log n) وجود دارد:

def fib(n):
def mat_pow(mat, power):
result = [[1,0],[0,1]]
while power > 0:
if power % 2 == 1:
result = mat_mult(result, mat)
mat = mat_mult(mat, mat)
power //= 2
return result

def mat_mult(a, b):
return [[a[0][0]*b[0][0] + a[0][1]*b[1][0],
a[0][0]*b[0][1] + a[0][1]*b[1][1]],
[a[1][0]*b[0][0] + a[1][1]*b[1][0],
a[1][0]*b[0][1] + a[1][1]*b[1][1]]]

if n == 0:
return 0
mat = [[1,1],[1,0]]
result = mat_pow(mat, n-1)
return result[0][0]



#پایتون | #الگوریتم | #بهینه_سازی | @learnpythonicy
آموزش پایتون
✔️ محاسبه سریع فیبوناچی با روش ماتریسی! برای محاسبه دنباله فیبوناچی معمولاً از روش بازگشتی استفاده می‌کنیم: def fib(n): if n <= 1: return n return fib(n-1) + fib(n-2) اما یک روش حرفه‌ای با پیچیدگی O(log n) وجود دارد: def fib(n): …
چرا این روش انقلابی است؟
1. سرعت فوق‌العاده: محاسبه fib(1000) در 0.0001 ثانیه
2. حافظه بهینه: بدون استفاده از پشته بازگشتی
3. پشتیبانی از اعداد بسیار بزرگ

نحوه کار:
- از توان ماتریس ۲×۲ استفاده می‌کند
- با تکنیک توان رسانی سریع محاسبه می‌شود

مقایسه عملکرد:
- fib(22) با روش بازگشتی: 0.05994 ثانیه
- fib(22) با این روش: 0.00000 ثانیه
Packtpub_Mastering_OpenCV_with_Practical.pdf
6.3 MB
📚 «Mastering OpenCV with Practical Computer Vision Projects»

📚 کتاب "تسلط بر OpenCV با پروژه‌های عملی بینایی کامپیوتر"

آیا به دنبال یادگیری عمیق و کاربردی OpenCV و پیاده‌سازی پروژه‌های واقعی بینایی کامپیوتر هستید؟

این کتاب یک راهنمای جامع و پروژه‌محور برای توسعه‌دهندگانی است که می‌خواهند از کتابخانه OpenCV برای حل مسائل پیچیده بینایی ماشین استفاده کنند.

خلاصه‌ای از کتاب
این کتاب با رویکردی عملی و مبتنی بر پروژه، تکنیک‌های پیشرفته پردازش تصویر و بینایی کامپیوتر را آموزش می‌دهد. از مباحث پایه‌ای OpenCV تا پیاده‌سازی پروژه‌های واقعی مانند تشخیص چهره، ردیابی اشیا و پردازش ویدئو، همه در این کتاب پوشش داده شده‌اند.


چرا این کتاب را بخوانیم؟
- مناسب برای توسعه‌دهندگان متوسط و پیشرفته
- ارائه مثال‌های عملی و پروژه‌های کاربردی
- مرجع عالی برای علاقه‌مندان به بینایی ماشین و پردازش تصویر

#معرفی_کتاب | #بوک_تایم | آموزش پایتون | #بینایی_کامپیوتر | #opencv
1
آموزش پایتون
کار دستور split چیست؟
✔️ دستور split() در پایتون

دستور split() یک متد برای رشته‌ها (strings) در پایتون است که یک رشته را به چند بخش تقسیم می‌کند و نتیجه را به صورت لیست برمی‌گرداند.

کاربرد اصلی:
رشته.split(جداکننده, maxsplit)


- جداکننده (sep): مشخص می‌کند بر اساس چه کاراکتری تقسیم انجام شود (پیش‌فرض: فاصله)
‏- و maxsplit : حداکثر تعداد تقسیم‌ها را مشخص می‌کند

مثال‌های ساده

1. تقسیم بر اساس فاصله (پیش‌فرض):
text = "Hello World Python"
result = text.split()
print(result) # خروجی: ['Hello', 'World', 'Python']


2. تقسیم بر اساس کاراکتر خاص:
data = "apple,banana,orange"
result = data.split(',')
print(result) # خروجی: ['apple', 'banana', 'orange']


3. محدود کردن تعداد تقسیم‌ها:
text = "one two three four"
result = text.split(' ', 2)
print(result) # خروجی: ['one', 'two', 'three four']


4. تقسیم خطوط یک متن:
poem = "Line1\nLine2\nLine3"
lines = poem.split('\n')
print(lines) # خروجی: ['Line1', 'Line2', 'Line3']


این متد بسیار پرکاربرد است، مخصوصاً هنگام پردازش فایل‌های متنی یا داده‌های ساختاریافته مانند CSV.

#split | @LearnPythonIcy
1
✔️ خروجی‌ کد بالا کدام است؟

#تست_تایم | آموزش پایتون
Output:
Anonymous Quiz
17%
A
33%
B
50%
C
0%
D
This media is not supported in your browser
VIEW IN TELEGRAM
💥 راز یادگیری برنامه‌نویسی بدون سردرگمی!

همیشه می‌پرسید "چطور برنامه‌نویس بشم؟" یا "از کجا شروع کنم؟"
راه حلش تو این ویدئوعه!

✔️ سایت roadmap.sh مسیر یادگیری رو از پایه تا پیشرفته نشون میده...

برای همه حوزه‌ها (فرانت، بک‌اند، دواپس، ...) راهنمای اختصاصی داره!

توی ویدئو بهتون نشون میدم چطور ازش استفاده کنید!

👇به نظرتون مهم‌ترین قدم برای شروع برنامه‌نویسی چیه؟؟
کامنت کنید و این پست رو برای دوستاتون فوروارد کنید!

#roadmap | @learnpythonicy
2
شما به ۳ برد روزانه نیاز دارید:

1⃣ برد فیزیکی
پیاده‌روی، دویدن، وزنه‌برداری، شنا..

2⃣ برد ذهنی
خواندن، نوشتن، خلق کردن، یادگیری..

3⃣ برد معنوی
دعا کردن، مدیتیشن، مطالعه، رشد..

یک برنده کامل باشید!

#موتیو_تایم | آموزش پایتون
✔️ ایجاد سریع فایل‌ها و پوشه‌های موقت با tempfile

به چیزی موقت برای گزارش‌ها، حافظه پنهان یا آزمایش‌ها نیاز دارید؟
به جای کدگذاری مسیرها و تمیز کردن دستی، از ماژول tempfile استفاده کنید - همه چیز را خودش ایجاد و حذف می‌کند.

ماژول tempfile به شما امکان می‌دهد با خیال راحت با فایل‌ها و پوشه‌های موقت، به خصوص در آزمایش‌ها یا برای داده‌های میانی، کار کنید - بدون نگرانی در مورد تمیز کردن.

#tempfile | @learnpythonicy
🦆 اگر پرنده‌ای شبیه اردک راه برود و صدای اردک بدهد، پس آن یک اردک است!

حالا این چه ربطی به پایتون دارد؟ 🤔

در پایتون، Duck Typing یک مفهوم جذاب است .

✔️ معنی Duck Typing در کدنویسی
پایتون به نوع اشیا (Type) به صورت سخت‌گیرانه نگاه نمی‌کند، بلکه به رفتار (Behavior) آنها اهمیت می‌دهد. اگر یک شی متدها یا ویژگی‌های مورد نیاز شما را داشته باشد، پایتون اجازه می‌دهد با آن کار کنید، حتی اگر از کلاس خاصی نباشد.

کاربرد Duck Typing در پایتون
1. انعطاف‌پذیری بالا: نیازی به ارث‌بری یا رابط‌های رسمی نیست.
2. کد تمیزتر: بدون بررسی‌های نوع اضافی (isinstance).
3. مفید برای Mocking در تست‌ها: می‌توان اشیا ساده با متدهای مشابه ساخت.
4. استفاده در کتابخانه‌های استاندارد: مثل len() که روی هر شیء با متد __len__() کار می‌کند.


📌 خلاصه
پایتون می‌گوید: "به نوع (Type) اهمیت نده، فقط رفتار (Behavior) را بررسی کن!"

#بدانیم | @learnpythonicy
3
✔️ ترتیب وضوح متد یا همان MRO

وقتی چندین کلاس والد داریم، پایتون برای پیدا کردن متدها و ویژگی‌ها از MRO استفاده می‌کند. MRO با الگوریتم C3 Linearization تعیین می‌شود.

✔️ بررسی MRO
با تابع mro() یا __mro__ می‌توان ترتیب را دید:
print(D.mro())  # [<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]


✔️ کاربردهای MRO
1. حل تعارض ارث‌بری چندگانه
2. تعیین ترتیب فراخوانی متدها در سوپرکلاس‌ها (super())
3. اجتناب از مشکلات Diamond Problem در ارث‌بری.

#MRO | @learnpythonicy
🔍 Risk vs. Error in Deep Learning: Why a Low-Error Model Can Still Be Dangerous?

A model achieves 99% accuracy on test data - but is it truly reliable?
Error: Prediction vs ground truth difference (e.g., Accuracy)
⚠️ Risk: Real-world consequences of model mistakes!

Example:
- Facial recognition model with 2% error:
- When used in smart locks: 1 unauthorized access every 50 attempts!
- Low error ≠ Low risk!

Key Insight:
Always ask: "What's the cost if this model fails?"

#DeepLearning #AI #MachineLearning #RiskManagement

⚪️⚪️⚪️⚪️⚪️⚪️⚪️⚪️⚪️

🔍 تفاوت Risk و Error در یادگیری عمیق: چرا مدل با خطای کم می‌تواند خطرناک باشد؟

مدلی با دقت ۹۹% روی داده تست - اما آیا واقعاً قابل اعتماد است؟
خطا (Error): اختلاف پیش‌بینی با مقدار واقعی
⚠️ خطر (Risk): پیامدهای عملی اشتباه مدل!

مثال کاربردی:
- مدل تشخیص چهره با ۲% خطا:
- در قفل هوشمند: هر ۵۰ بار یک دسترسی غیرمجاز!
- خطای کم ≠ خطر کم!

نکته کلیدی:
همیشه بپرسید: "هزینه اشتباه این مدل چیست؟"

#یادگیری_عمیق #هوش_مصنوعی
🤓1
آموزش پایتون
Photo
🔥 چطور مغز انسان الهام‌بخش انقلابی در هوش مصنوعی شد؟
روایتی جذاب از تقلید نورون‌های زیستی برای ساخت الگوریتم‌های یادگیری ماشین...


🧠 بخش اول: نورون طبیعی – شاهکار زیستی مغز شما
مغز ما با بیش از ۸۶ میلیارد نورون، یک سیستم پردازشی خارق‌العاده است.
این نورون‌ها مانند اعضای یک تیم منسجم، اطلاعات را تحلیل، انتقال و ذخیره می‌کنند.

📌 مثال ساده: وقتی فنجانی چای برمی‌دارید:

نورون‌های حسی: «فنجان داغه!» 🔥

نورون‌های حرکتی: «آروم بردار!»

یادگیری: اگر قبلاً دستت سوخته باشه، این مسیر تقویت می‌شه!


🤖 بخش دوم: نورون مصنوعی – الهامی برای یادگیری ماشین (Machine Learning)
در سال ۱۹۴۳، پژوهشگران اولین نورون مصنوعی را با الگوبرداری از مغز ساختند.

🔹 ورودی (Input): داده‌های خام (مثلاً پیکسل‌های یک تصویر)
🔹 وزن (Weight): اهمیت هر ورودی (مثلاً چشم گربه مهم‌تر از دم!)
🔹 تابع فعال‌سازی (Activation Function): مثل آستانه تحریک در مغز، تصمیم می‌گیرد خروجی فعال شود یا نه.


🌉 مقایسه ملموس: مغز vs مدل یادگیری ماشین (ML Model)

مغز انسان گوش‌های نوک‌تیز گربه را تشخیص می‌دهد.

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


🚀 تحول‌های کلیدی در مسیر تکامل هوش مصنوعی (Artificial Intelligence یا AI)
۱. پرسپترون (Perceptron – ۱۹۵۸): اولین شبکه با قابلیت یادگیری
۲. یادگیری عمیق (Deep Learning – ۲۰۱۰): با افزایش قدرت محاسباتی، شبکه‌های چند‌لایه ممکن شدند
۳. ترنسفورمرها (Transformers – ۲۰۱۷): الگوریتم‌هایی با الهام از «مکانیسم توجه» (Attention Mechanism) در مغز، مبنای مدل‌هایی مثل GPT


💡 چرا مغز انسان هنوز الهام‌بخش است؟

تشخیص تصویر (Image Recognition): شبکه‌های عصبی پیچشی (شبکه‌های کانولوشنی یا CNN – Convolutional Neural Networks) از قشر بینایی مغز تقلید می‌کنند

پردازش زبان (Language Processing): مدل‌های زبانی مانند ChatGPT از ارتباطات نورونی مغز الهام گرفته‌اند


آیا روزی هوش مصنوعی می‌تواند دقیقاً مثل مغز انسان فکر کند؟
مشتاقانه منتظر شنیدن دیدگاه شما هستم 👇


#علوم_اعصاب #ML #AI #Neuroscience

#بدانیم | @LearnPythonicy
👍1