پایتون ( Machine Learning | Data Science )
23.6K subscribers
469 photos
57 videos
103 files
335 links
◀️اینجا با تمرین و چالش با هم پایتون رو یاد می گیریم

بانک اطلاعاتی پایتون
پروژه / code/ cheat sheet
+ویدیوهای آموزشی

+کتابهای پایتون
تبلیغات:
@alloadv

🔁ادمین :
@maryam3771
Download Telegram
🖥 مجموعه ای از پروژه ها برای ارتقای مهارت کدنویسی در #پایتون

پروژه های زیادی با درجات پیچیدگی مختلف در این پکیج جمع آوری شده است که در ادامه به برخی از آنها اشاره می کنیم:

  — implementation of Conway's Game of Life
- creating your own website using Django
- maze generator
- URL shortener
— utility for to-do



🟡 Python projects

#پروژه #Python
🆔 @Python4all_pro
Ex_Files_Python_Data_Analysis.zip
16.7 MB
تجزیه و تحلیل داده ها با پایتون

فایلهای تمرین



#علم_داده #کتابخانه
#NumPy #pandas #python

✔️ کانال آموزش پایتون برای همه


🆔 @Python4all_pro
Python Data Analysis.zip
388.2 MB
تجزیه و تحلیل داده ها با پایتون


با این آموزش یاد بگیرید که چگونه از پایتون، #NumPy و #pandas برای تجزیه و تحلیل مجموعه داده های بزرگ و کوچک استفاده کنید




#علم_داده #کتابخانه

✔️ کانال آموزش پایتون برای همه

🆔 @Python4all_pro
Learn Python with Examples 2024.pdf
2 MB
Learn #Python with Examples



این کتاب و دوتا کتابی که لینکش رو در ادامه میفرستم مخصوص افرادیه که حوصله دیدن فیلم آموزشی و خوندن کتابهای پیچیده ی پایتون رو ندارند

📘https://t.me/Python4all_pro/131

📘https://t.me/Python4all_pro/115

#pdf

🆔 @Python4all_pro
آموزش سانسور کردن و بازگرداندن سانسور یک قسمت از عکس با پایتون

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

نصب کتابخانه‌های مورد نیاز

ابتدا باید کتابخانه‌ی OpenCV را نصب کنید. اگر هنوز نصب نکرده‌اید، با اجرای دستور زیر در محیط ترمینال یا CMD می‌توانید این کار را انجام دهید:

pip install opencv-python

کد نمونه برای سانسور کردن یک قسمت از عکس

در این مثال، یک قسمت از عکس را محو (blur) می‌کنیم:

import cv2

# بارگذاری تصویر
image = cv2.imread('input_image.jpg')

# تعیین ناحیه‌ای که می‌خواهیم سانسور کنیم (x, y, عرض، ارتفاع)
x, y, w, h = 100, 100, 200, 200
roi = image[y:y+h, x:x+w]

# محو کردن ناحیه
blurred_roi = cv2.GaussianBlur(roi, (23, 23), 30)

# جایگزین کردن ناحیه محو شده در تصویر اصلی
image[y:y+h, x:x+w] = blurred_roi

# ذخیره تصویر خروجی
cv2.imwrite('censored_image.jpg', image)

# نمایش تصویر
cv2.imshow('Censored Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

🔍 توضیحات:
- بارگذاری تصویر: تصویر مورد نظر را با cv2.imread بارگذاری می‌کنیم.
- تعیین ناحیه: ناحیه‌ای که می‌خواهیم سانسور کنیم را با مختصات (x, y) و اندازه (عرض، ارتفاع) مشخص می‌کنیم.
- محو کردن ناحیه: از فیلتر Gaussian Blur برای محو کردن ناحیه استفاده می‌کنیم.
- ذخیره و نمایش تصویر: تصویر محو شده را ذخیره و نمایش می‌دهیم.

کد نمونه برای بازگرداندن ناحیه اصلی

در این مثال، ناحیه سانسور شده را با ناحیه اصلی جایگزین می‌کنیم:

import cv2
import numpy as np

# بارگذاری تصویر اصلی و تصویر سانسور شده
original_image = cv2.imread('input_image.jpg')
censored_image = cv2.imread('censored_image.jpg')

# تعیین ناحیه‌ای که سانسور شده (x, y, عرض، ارتفاع)
x, y, w, h = 100, 100, 200, 200

# بازگرداندن ناحیه اصلی
censored_image[y:y+h, x:x+w] = original_image[y:y+h, x:x+w]

# ذخیره تصویر خروجی
cv2.imwrite('restored_image.jpg', censored_image)

# نمایش تصویر
cv2.imshow('Restored Image', censored_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

🔍 توضیحات:
- بارگذاری تصاویر: تصویر اصلی و تصویر سانسور شده را بارگذاری می‌کنیم.
- بازگرداندن ناحیه اصلی: ناحیه محو شده را با ناحیه اصلی از تصویر اصلی جایگزین می‌کنیم.
- ذخیره و نمایش تصویر: تصویر بازگردانده شده را ذخیره و نمایش می‌دهیم.



#Python #OpenCV

#کتابخانه

✔️ کانال آموزش پایتون برای همه

🆔 @Python4all_pro
gTTS (Google Text-to-Speech) - Python library and command line tool (CLI) for interacting with the Google Translate text-to-speech API.

You can use it to write spoken text to an MP3 file, an object-like file (bytestring) for further audio processing, or directly to standard output.

Peculiarities:
- A customizable tokenizer that allows you to voice text of any length while maintaining correct intonation, abbreviations, decimals and much more.
- Ability to configure text pre-processing to correct pronunciation

Installation:
pip install gTTS

Example usage on the command line:
gtts-cli 'hello' --output hello.mp3

Or in a Python module:
from gtts import gTTS
tts = gTTS('hello')
tts.save('hello.mp3')


🖥 GitHub
🟡 Docks



#library
#python

🆔 @Python4all_pro
🖥 محاسبه مشتق و انتگرال ها در پایتون

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

pip install sympy

🖥 GitHub


🆔 @Python4all_pro
استفاده از پردازش چند هسته‌ای CPU در پایتون

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

مثال ساده: پردازش همزمان وظایف ساده

برای شروع، یک برنامه ساده با استفاده از کتابخانه‌ی multiprocessing ایجاد می‌کنیم که چندین وظیفه را همزمان اجرا کند.

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()

for p in processes:
p.join()

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان استفاده می‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برای ۲ ثانیه متوقف می‌شایجاد و شروع فرآیندهاآیندها:
با استفاده از multiprocessing.Process، پنج فرآیند ایجاد می‌کنیم و آنها را با استفاده از start() آغاز می‌کنمنتظر ماندن برای اتمام فرآیندهاآیندها**:
با استفاده از join()، مطمئن می‌شویم که تمامی فرآیندها قبل از پایان یافتن برنامه اصلی به اتمام رسیده‌اند.

مثال پیشرفته: استفاده از Pool برای مدیریت وظایف

برای مدیریت بهتر تعداد زیادی از وظایف، می‌توان از کلاس Pool استفاده کرد. این روش به شما امکان می‌دهد که تعداد ثابتی از فرآیندها را ایجاد کرده و وظایف را بیکد:ید.

کد:

import multiprocessing
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with multiprocessing.Pool(processes=4) as pool:
pool.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی multiprocessing و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرآیندها و توقف زمان اتعریف تابع worker*تعریف تابع worker**:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپس برااستفاده از Pool **استفاده از Pool**:
با استفاده از multiprocessing.Pool، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

مثال پیشرفته‌تر: استفاده از concurrent.futures برای مدیریت وظایف

کتابخانه‌ی concurrent.futures یکی دیگر از ابزارهای پایتون برای مدیریت پردازش‌های همزمان است. این کتابخانه برای ساده‌تر کردن استفاده کد: طراحی شده است.

کد:

from concurrent.futures import ProcessPoolExecutor
import time

def worker(num):
"""یک وظیفه ساده که عدد ورودی را چاپ می‌کند و برای ۲ ثانیه متوقف می‌شود."""
print(f'Worker: {num}')
time.sleep(2)

if __name__ == '__main__':
with ProcessPoolExecutor(max_workers=4) as executor:
executor.map(worker, range(10))

توضیحات:
1. ایمپورت کتابخانه‌ی concurrent.futures و time:
این کتابخانه‌ها برای ایجاد و مدیریت فرتعریف تابع worker‌شوند.

2. تعریف تابع worker:
این تابع یک عدد را به عنوان ورودی می‌گیرد و آن را چاپ می‌کند، سپساستفاده از ProcessPoolExecutorاستفاده از ProcessPoolExecutor**:
با استفاده از ProcessPoolExecutor، یک استخر از ۴ فرآیند ایجاد می‌کنیم و از متد map برای اجرای تابع worker برای هر عدد از ۰ تا ۹ استفاده می‌کنیم.

استفاده از پردازش چند هسته‌ای در پایتون می‌تواند به بهبود کارایی برنامه‌ها کمک کند. با استفاده از کتابخانه‌هایی مانند multiprocessing و concurrent.futures، می‌توان وظایف مختلف را به طور همزمان اجرا کرد و از توان پردازشی سیستم به بهترین نحو استفاده کرد.

✔️ کانال آموزش پایتون برای همه


🆔 @Python4all_pro
Extract Text from Image using Python




#Code

🆔 @Python4all_pro
Media is too big
VIEW IN TELEGRAM
modern GUIs in Python [ with tkinter ]

This tutorial covers everything you need to know about user interfaces in Python. We will go over all of tkinter, Python's default GUI framework, cover all the basics and then create a BMI app, a calculator and a photoshop style image editor.
If you enjoy this course, consider buying the tutorial that covers 7 additional apps: A responsive weather app, the ios stopwatch, a stock market tracker, a map viewer, a paint app, a snake game and qrcode generator


Code: 
https://github.com/clear-code-projects/tkinter-complete 

#پروژه

🆔 @Python4all_pro
📚 آموزش ساخت و تلفیق سیستم AI در برنامه پایتون 📚

سلام دوستان! امروز می‌خوایم یک سیستم هوش مصنوعی (AI) رو با استفاده از PyTorch بسازیم و سپس اون رو در یک برنامه پایتون تلفیق کنیم. این آموزش برای کسانی که می‌خوان اصول پیاده‌سازی و استفاده از هوش مصنوعی در برنامه‌های کاربردی رو بفهمند بسیار مناسب هست.

1. تنظیمات اولیه 🛠️

نصب PyTorch
برای نصب PyTorch از دستور زیر استفاده کنید:
pip install torch torchvision

2. آماده‌سازی داده‌ها 📋

در این آموزش از مجموعه داده‌های MNIST استفاده می‌کنیم که شامل تصاویر دست‌نویس اعداد 0 تا 9 است.

import torch
import torchvision
import torchvision.transforms as transforms

# تعریف تبدیل‌ها
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])

# دانلود و بارگذاری مجموعه داده‌های آموزشی و تست
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=True)

testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=32, shuffle=False)

3. تعریف مدل AI 📈

یک شبکه عصبی پیچیده برای تشخیص اعداد دست‌نویس تعریف می‌کنیم.

import torch.nn as nn
import torch.nn.functional as F

class ComplexNN(nn.Module):
def __init__(self):
super(ComplexNN, self).__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(64 * 7 * 7, 128)
self.fc2 = nn.Linear(128, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x

net = ComplexNN()

4. تعریف تابع هزینه و بهینه‌ساز 📉

ما از تابع هزینه CrossEntropy و بهینه‌ساز Adam استفاده می‌کنیم.

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)

5. آموزش مدل AI 📊

شبکه عصبی رو برای چندین ایپاک (epoch) آموزش می‌دهیم.

for epoch in range(5):  # تعداد ایپاک‌ها

running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data

optimizer.zero_grad()

outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()

running_loss += loss.item()
if i % 100 == 99:
print(f'[Epoch {epoch + 1}, Batch {i + 1}] loss: {running_loss / 100:.3f}')
running_loss = 0.0

print('آموزش تمام شد')

6. ذخیره مدل آموزش‌دیده شده 💾

مدل آموزش‌دیده شده رو ذخیره می‌کنیم تا در برنامه کاربردی از آن استفاده کنیم.

torch.save(net.state_dict(), 'model.pth')

7. بارگذاری مدل و استفاده از آن در برنامه کاربردی 📱

حالا یک برنامه پایتون جدید ایجاد می‌کنیم که شامل یک رابط کاربری ساده برای استفاده از مدل AI است. این برنامه با استفاده از کتابخانه tkinter یک رابط کاربری گرافیکی (GUI) ایجاد می‌کند.

ساخت رابط کاربری با tkinter👇



🆔 @Python4all_pro
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk, ImageOps
import torch
import torchvision.transforms as transforms
import numpy as np

# تعریف مدل و بارگذاری وزن‌های آموزش‌دیده شده
class ComplexNN(nn.Module):
init__init__(self):
super(ComplexNNinit__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, stride=1, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1)
self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0)
self.fc1 = nn.Linear(64 * 7 * 7, 128)
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 7 * 7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x

net = ComplexNN()
net.load_state_dict(torch.load('model.pth'))
net.eval()

# تعریف تبدیل‌ها
transform = transforms.Compose([
transforms.Grayscale(num_output_channels=1),
transforms.Resize((28, 28)),
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])

# ساخت برنامه tkinter
class AIApp:
def init(self, root):
self.root = root
self.root.title("AI Number Recognizer")

self.label = tk.Label(root, text="Load an image to recognize the number")
self.label.pack()

self.button = tk.Button(root, text="Load Image", command=self.load_image)
self.button.pack()

self.canvas = tk.Canvas(root, width=200, height=200)
self.canvas.pack()

self.result_label = tk.Label(root, text="")
self.result_label.pack()

def load_image(self):
file_path = filedialog.askopenfilename()
if file_path:
image = Image.open(file_path)
self.show_image(image)
number = self.predict_number(image)
self.result_label.config(text=f"Predicted Number: {number}")

def show_image(self, image):
image = ImageOps.fit(image, (200, 200), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)
self.canvas.create_image(0, 0, anchor=tk.NW, image=photo)
self.canvas.image = photo

def predict_number(self, image):
image = transform(image).unsqueeze(0)
output = net(image)
_, predicted = torch.max(output.data, 1)
return predicted.item()

root = tk.Tk()
app = AIApp(root)
root.mainloop()

8. توضیحات تکمیلی 📚

این برنامه یک شبکه عصبی پیچیده برای تشخیص اعداد دست‌نویس ساخته شده با PyTorch را در یک رابط کاربری ساده با استفاده از tkinter تلفیق می‌کند. کاربران می‌توانند یک تصویر دست‌نویس از عددی را بارگذاری کرده و برنامه به طور خودکار عدد موجود در تصویر را تشخیص می‌دهد.

مزایا و کاربردهای استفاده از این سیستم AI

1. بهبود دقت: استفاده از شبکه عصبی پیچیده دقت بالایی در تشخیص اعداد دست‌نویس دارد.
2. انعطاف‌پذیری: می‌توان مدل را برای تشخیص اشیاء و الگوهای دیگر آموزش داد.
3. سهولت استفاده: رابط کاربری ساده به کاربران امکان می‌دهد به راحتی از مدل استفاده کنند


#یادگیری_ماشین #شبکه_عصبی #هوش_مصنوعی #پایتون #PyTorch #AI #Code

🆔 @Python4all_pro
دانشگاه شریف سال گذشته دوره‌ی «برنامه‌نویسی پایتون و خلاقیت الگوریتمی» را برای هزاران دانش‌آموز متوسطه‌ی سراسر کشور برگزار کرد.
تمام محتوای این دوره شامل ویدئوی کلاس‌ها، تمرین‌های نظری و عملی «به صورت رایگان» به همه‌ی دانش‌آموزان ایران تقدیم می‌شود:

http://www.learn-python.ir

#پایتون
🆔 @Python4all_pro