d = {'A': 1, 'B': 2, 'C': 3}
while d:
print(d.popitem())
print('Done')
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
👍3
میشه از حلقه
while
در روش Divide and Conquer برای بهینهسازی پارامترهای مدل در یادگیری ماشین استفاده کرد. این روش با اجرای حلقه تا رسیدن به شرایط خاص، مثل حداکثر دقت مدل یا کاهش تفاوت پارامترها به کمتر از Threshold تعیینشده، مؤثره. این استراتژی، بهویژه برای Tuning دقیق مدلهای پیچیده که جستجوی دستی برای پارامترها ناکارآمده، مفیده.
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2👨💻2
در پایتون، استفاده از
if
به عنوان پایهای برای بررسی شرایط مختلف، بسیار کاربردیه. میتونیم با استفاده از شرطهای ترکیبی و توابع، منطقهای بسیار پیچیدهای رو پیادهسازی کنیم.and
و or
به ما این امکان رو میدن که چندین معیار رو همزمان در نظر بگیریم.def check_temp_humidity(temp, humidity):
if temp > 30 and humidity > 50:
return "Hot and Humid"
elif temp > 30 or humidity > 50:
return "Hot or Humid"
else:
return "Comfortable"
print(check_temp_humidity(32, 55))
print(check_temp_humidity(32, 45))
def grade_evaluation(score):
if score >= 90:
if score >= 95:
return "A+"
return "A"
elif score >= 80:
return "B"
elif score >= 70:
return "C"
else:
return "D"
print(grade_evaluation(96))
print(grade_evaluation(82))
elif
استفاده میکنیم.def traffic_light(color):
if color == "green":
return "Go"
elif color == "yellow":
return "Slow Down"
elif color == "red":
return "Stop"
else:
return "Invalid Color"
print(traffic_light("yellow"))
in
در if
برای بررسی وجود یک عنصر درون یک مجموعه، لیست، یا رشته استفاده میشه. همچنین از از not
برای برعکس کردن یک شرط میشه استفاده کرد.def check_membership(num, dataset):
if num in dataset:
return f"{num} is in the dataset."
else:
return f"{num} is not in the dataset."
dataset = {1, 3, 5, 7}
print(check_membership(3, dataset))
numbers = [1, 2, 3, 4, 5]
new_list = ["Even" if num % 2 == 0 else "Odd" for num in numbers]
print(new_list)
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥1👨💻1
در پایتون، زمانی که میخوایم چک کنیم یک متغیر
None
هست یا نه، باید از is
استفاده کنیم، نه از ==
. این یکی از توصیههای مهم در نوشتن شرطهای if
هست که حتی برنامهنویسان پیشرفته هم گاهی اوقات نادیده میگیرن! مقدار
None
یک نمونه منحصر به فرده و استاندارد پایتون (PEP 8) توصیه میکنه که برای مقایسه با این مقدار خاص از is
استفاده شه. استفاده از is
صحت و سرعت بالاتری داره. همچنین، این روش کد رو خواناتر و اجرای درست برنامه در شرایط مختلف رو تضمین میکنه.روش غلط:
if my_variable == None:
روش درست:
if my_variable is None:
# انجام عملیات خاصی اگر my_variable برابر با None باشد
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍2👨💻2🤔1
توابع در برنامهنویسی، بلوکهای کدی هستن که برای اجرای گروهی دستوراتی مشخص، با هدف کاهش تکرار کد و افزایش خوانایی، تعریف میشن. این بلوکها میتونن دادهها رو به عنوان ورودی بگیرن، عملیات انجام بدن و نتایج رو برگردونن.
def calculate_accuracy(predictions, labels):
correct = sum(p == l for p, l in zip(predictions, labels))
accuracy = correct / len(labels)
return accuracy
# فرض کنید predictions و labels برچسبهای پیشبینی شده و واقعی هستند.
accuracy = calculate_accuracy(predictions, labels)
print(f"Accuracy: {accuracy:.2%}")
from sklearn.preprocessing import StandardScaler
def preprocess_data(data):
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)
return scaled_data
# فرض کنید data دادههای خام است.
scaled_data = preprocess_data(data)
from sklearn.model_selection import cross_val_score
def evaluate_model_with_cv(model, data, labels, cv=5):
scores = cross_val_score(model, data, labels, cv=cv)
return scores
# فرض کنید model مدل ماشین لرنینگ، data دادهها و labels برچسبها هستند.
cv_scores = evaluate_model_with_cv(best_model, scaled_data, labels)
print(f"CV Scores: {cv_scores}")
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1🤔1👨💻1
This media is not supported in your browser
VIEW IN TELEGRAM
تابع
()any
در پایتون برای بررسی اینکه آیا هر یک از عناصر داخل یک لیست یا Tuple برابر با True
هست یا نه، استفاده میشه. این تابع برای بررسی شرایط متعدد به صورت موازی بسیار مفیده و عملیاتهای محاسباتی پیچیده رو با استفاده از خطوط کد نسبتاً کم انجام میده.
این کد یک لیست از دشمنان رو نشون میده که هر دشمن به صورت یک دیکشنری تعریف شده و دارای دو کلید
type
و health
هست. اینجا تابع ()any
برای تعیین اینکه آیا هنوز دشمنی با سلامتی بالاتر از صفر (یعنی هنوز زنده) وجود داره یا نه، استفاده میشه.اگه حداقل یک دشمن با سلامتی بالاتر از صفر باشه، عبارت
The battle is not over!
چاپ میشه، که به این معنیه که مبارزه هنوز تموم نشده. اگر هیچ دشمن زندهای وجود نداشته باشه (یعنی سلامتی همه صفر یا کمتر باشه)، عبارت No more enemies remain!
چاپ میشه که نشوندهنده پایان مبارزهست.#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1👨💻1
توابع Lambda در پایتون، توابعی هستن که به کمک کلیدواژه
lambda
تعریف میشن. این توابع به دلیل انعطافپذیری و امکان نوشتن در یک خط، برای انجام عملیاتهای سریع بسیار کاربرد دارن. این توابع میتونن هر تعداد پارامتر رو دریافت کنن اما تنها یک عبارت رو ارزیابی و مقدارش رو برمیگردونن. این عبارت به طور خودکار و بدون نیاز به استفاده از دستور
return
برگشت داده میشه.()filter
و ()map
و ()reduce
استفاده میشن که به ما اجازه میدن تا عملیاتهای پیچیدهتر رو بر روی دادهها اجرا کنیم.numbers = range(-5, 5)
negative_numbers = list(filter(lambda x: x < 0, numbers))
print(negative_numbers)
squared = list(map(lambda x: x ** 2, numbers))
print(squared)
from functools import reduce
# یافتن حاصل ضرب تمام اعداد در یک لیست
product = reduce(lambda x, y: x * y, [1, 2, 3, 4, 5])
print(product)
def apply_function(func, value):
return func(value)
result = apply_function(lambda x: x * x, 5)
print(result)
names = ['David', 'Brian', 'Alice', 'Catherine']
sorted_names = sorted(names, key=lambda name: len(name))
print(sorted_names)
data = [(1, 'd'), (2, 'b'), (3, 'c'), (4, 'a')]
# برای مرتبسازی یک لیست از تاپلها
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1👏1
زمان نوشتن توابع لامبدا در پایتون، یکی از کارهایی که نباید انجام داد، استفاده از عبارتهای پیچیده یا انجام چندین عملیات در یک تابعه. توابع لامبدا باید ساده و خوانا باشن؛ چون برای تعریف مختصر در یک خط طراحی شدن. اگه لازمه که عملیات پیچیدهتری انجام شه، بهتره که از توابع معمولی استفاده کنیم تا خوانایی و قابلیت نگهداری کد حفظ شه.
یه مثال برای یه لامبدا پیچیده که درکش سخته و بیش از حده:
complex_lambda = lambda x, y, z: x**2 + y**2 if x > y else (x + z) * (y - z)
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4👨💻2🔥1
لیستهای پیچیده یکی از قابلیتهای قدرتمند پایتون هستن که به شما اجازه میده با استفاده از حلقهها و شرطها در یک خط کد، لیستهای پیچیدهتری نسبت به حلقههای معمولی تولید کنید. List Comprehensions همچنین میتونه به افزایش خوانایی و کارایی کد کمک کنه، مخصوصاً زمانی که با فیلترها و توابع سفارشی ترکیب میشن.
# تولید لیستی از اعداد زوج که مجموعهی ارقامشون به 3 بخشپذیره.
even_numbers_div_by_three = [x for x in range(2, 100, 2) if sum(int(digit) for digit in str(x)) % 3 == 0]
print(even_numbers_div_by_three)
def is_perfect_square(x):
# تعریف تابعی برای بررسی اینکه آیا یک عدد، مربع کامله یا نه.
return x == int(x**0.5) ** 2
# تولید لیستی از اعدادی که مربع کامل هستن.
perfect_squares = [x for x in range(1, 31) if is_perfect_square(x)]
print(perfect_squares)
dataset['numeric_column'] = [float(value) for value in dataset['text_column']]
# تبدیل ستونی از دادههای متنی به مقادیر عددی
text_lengths = [len(text) for text in dataset['text_column']]
# محاسبه طول رشتهها برای یک ستون متنی
batches = [data[i:i + 32] for i in range(0, len(data), 32)]
# تقسیم دادهها به بچهای 32 تایی
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👏2❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3👨💻1
کلاس یک طرح یا قالب کلی برای ایجاد شی (Object) هست. شیها نمونههایی از کلاسها هستن که دارای ویژگی (Attribute) و رفتار (Method) هستن.
class BankAccount:
def __init__(self):
self.balance = 0
def deposit(self, amount):
self.balance += amount
def get_balance(self):
return self.balance
# استفاده از کلاس
account = BankAccount()# ساخت یک شی از کلاس
account.deposit(100) # اضافه کردن 100 واحد به موجودی
print(account.get_balance()) # دریافت موجودی حساب
class BaseModel:
def train(self, data):
# این متد باید در کلاسهای وارث پیادهسازی شه، در غیر این صورت خطا رخ میده.
raise NotImplementedError("متد train پیادهسازی نشده است.")
class LinearRegression(BaseModel):
def train(self, data):
# منطق آموزش برای رگرسیون خطی در اینجا پیادهسازی میشه
pass
class DecisionTree(BaseModel):
def train(self, data):
# منطق آموزش برای درخت تصمیم در اینجا پیادهسازی میشه
pass
پارامتر
self
در پایتون به هر شیای که داخل یک کلاس تعریف میشه اشاره داره و به متدهای کلاس میگه که کارهاشون رو روی همین شی انجام بدن. یعنی وقتی شما یک متدی رو فراخوانی میکنین، self
باعث میشه که متد بدونه داره روی کدوم شی کار میکنه.class Trainable:
def train(self, data):
print("Training with data.")
class Predictable:
def predict(self, input_data):
print("Predicting output.")
class RandomForest(Trainable, Predictable):
def train(self, data):
# منطق آموزش خاص برای جنگل تصادفی (Random Forest) را پیادهسازی کنید
pass
__str__
و __repr__
. این دو تا به ما کمک میکنن که وقتی یک شی از یک کلاس رو چاپ میکنیم، به جای حروف و ارقام نامفهوم، یه توضیح معنادار و مرتبط با اون شی ببینیم.class KMeans:
def __init__(self, n_clusters):
self.n_clusters = n_clusters
def __str__(self):
return f"KMeans(n_clusters={self.n_clusters})"
مثلاً، توی یک کلاس به نام
KMeans
که برای دستهبندی دادهها به چند گروه استفاده میشه، ما میتونیم __str__
رو تعریف کنیم تا وقتی یک شی از این کلاس رو چاپ میکنیم، به ما بگه که این کلاس داره با چندتا گروه از دادهها کار میکنه. این کار میتونه به خصوص وقتی داریم دیباگ میکنیم و میخواهیم سریع بفهمیم شیهایی که باهاشون کار میکنیم چه خصوصیاتی دارن، خیلی مفید باشه. #Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1👨💻1
💡 بهینهسازی دسترسی به اجزای کلاس در پایتون
یکی از ویژگیهای جذاب در کلاسهای پایتون، استفاده از
با استفاده از
به عنوان مثال، با استفاده از
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
یکی از ویژگیهای جذاب در کلاسهای پایتون، استفاده از
()property
هست که به ما امکان میده کنترل بیشتری بر روی دسترسی و تغییر متغیرهای کلاس داشته باشیم. میتونیم به جای استفاده از متدهای getter و setter سنتی، از دکوراتورهای property@
و attribute_name.setter@
استفاده کنیم.با استفاده از
()property
, میشه ویژگیهایی رو تعریف کرد که مثل متغیرهای عادی قابل دسترسی هستن، اما عملکردهای پیچیدهتری مثل اعتبارسنجی دادهها یا محاسبات خاص رو انجام میدن. این ویژگی به برنامهنویسان امکان میده که کدی تمیزتر و قابل نگهداریتر بنویسن. به عنوان مثال، با استفاده از
property@
میشه یک متد getter رو تعریف کرد که به صورت خودکار هنگام دسترسی به یک ویژگی فراخوانی میشه، بدون اینکه نیاز به نوشتن کدهای اضافی باشه. class Person:
def __init__(self, name, age):
self.name = name
self._age = age
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if value < 0:
raise ValueError("Age cannot be negative")
self._age = value
# استفاده از کلاس
p = Person("Ali", 30)
print(p.age) # 30
p.age = 35 # تغییر سن
print(p.age) # 35
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
👍5🔥1👨💻1
به فرآیند تبدیل یک نوع یک داده به نوع دیگه، Casting گفته میشه. این مهارت برای تحلیل دادهها و برنامهنویسی موثر بسیار مهمه.
num_str = "123"
# تبدیل رشته به عدد صحیح
num_int = int(num_str)
print(num_int) # 123
# تبدیل عدد صحیح به رشته
num_int = 123
num_str = str(num_int)
print(num_str) # '123'
# تبدیل لیستی از رشتهها به لیستی از اعداد صحیح
str_list = ["1", "2", "3"]
int_list = [int(x) for x in str_list]
print(int_list) # [1, 2, 3]
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# تبدیل دیکشنری به شیء
person_info = {"name": "Ali", "age": 30}
person = Person(**person_info)
print(person.name)
duplicate_list = [1, 2, 2, 3, 4, 4, 4]
unique_list = list(set(duplicate_list))
print(unique_list)
Pandas
استفاده کنیم که امکان تغییر نوع دادههای ستونهای یک دیتافریم را ممکن میکنه. این فرآیند تبدیل، یک جزء کلیدی در casting دادهها در پایتونه.import pandas as pd
# ایجاد یک دیتافریم ساده
df = pd.DataFrame({
'A': ['1', '2', '3'],
'B': ['4.5', '5.5', '6.5'],
'C': ['true', 'false', 'true']
})
# تبدیل انواع دادهای ستونها
df['A'] = df['A'].astype(int)
df['B'] = df['B'].astype(float)
df['C'] = df['C'].map({'true': True, 'false': False})
print(df.dtypes)
B float64
C bool
dtype: object
#Programming
#Python
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👨💻2👏1
#Python_IDEs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥2👏1
یکی از محبوبترین محیطهای توسعه یکپارچه (IDE) برای زبان برنامهنویسی پایتون، PyCharm است. PyCharm به دلیل رابط کاربری کاربرپسند و امکانات گستردهای که برای توسعهدهندگان فراهم میکنه، به عنوان یکی از انتخابهای اول برنامهنویسان پایتون شناخته میشه.
#Python_IDEs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2👏1
ویژوال استودیو کد (VS Code) توسط شرکت مایکروسافت با هدف سادهسازی فرآیند توسعه نرمافزار و افزایش بهرهوری توسعه داده شد. این ابزار، در سال ۲۰۱۵ به صورت منبع باز معرفی شد و به سرعت به یکی از پرکاربردترین IDEها در جامعه برنامهنویسان تبدیل شد.
#Python_IDEs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥1👏1
یکی از محبوبترین IDEها در دنیای برنامهنویسی Jupyter Notebook هست که در حوزه دادهکاوی، یادگیری ماشین، و محاسبات علمی بسیار کاربرد داره.
#Python_IDEs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3👌1👨💻1
محیط توسعه یکپارچه Spyder (Scientific PYthon Development EnviRonment) برای زبان برنامهنویسی Python هست که برای تحلیلهای علمی، دادهکاوی، یادگیری ماشین و پژوهشهای محاسباتی طراحی شده. این IDE بهصورت متنباز و رایگان عرضه میشه.
#Python_IDEs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3👌2👨💻1
یک IDE ساده و پیشفرض برای زبان برنامهنویسی پایتون، IDLE هست که همراه با نصب پایتون به صورت خودکار در دسترس قرار میگیره. این ابزار توسط Guido van Rossum، خالق پایتون، توسعه داده شده و اسمش مخفف Integrated Development and Learning Environment هست.
از Atom میشه به عنوان یک ویرایشگر متن باز و قابل توسعه که توسط GitHub توسعه داده شده نام برد. این ویرایشگر به خصوص در بین توسعهدهندگان وب و برنامهنویسانی که با زبانهای مختلف کار میکنن، محبوبیت زیادی داره.
#Python_IDEs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4👌1👨💻1
#Weekend
#Python_IDEs
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1👏1