❓کوئیز شماره ۹: استفاده از if برای فیلتر کردن دادهها
فرض کنین یک لیست از اعداد دارین و میخواین اعداد بزرگتر از 100 رو به لیست دیگهای اضافه کنین. کدوم قطعه کد زیر این کار رو به درستی انجام میده؟
فرض کنین یک لیست از اعداد دارین و میخواین اعداد بزرگتر از 100 رو به لیست دیگهای اضافه کنین. کدوم قطعه کد زیر این کار رو به درستی انجام میده؟
Anonymous Quiz
11%
if x > 100: new_list.append(x)
46%
new_list = [x for x in original_list if x > 100]
16%
if x in original_list > 100: new_list.append(x)
27%
new_list.append(x for x in original_list if x > 100)
❤6👍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
❓کوئیز شماره ۱۰: Function
کدوم گزینه نشون دهنده صحیح اصل DRY (Don't Repeat Yourself) در توابعه؟
کدوم گزینه نشون دهنده صحیح اصل DRY (Don't Repeat Yourself) در توابعه؟
Anonymous Quiz
20%
نوشتن کدهای مشابه در توابع مختلف
7%
استفاده از حلقهها به جای توابع
70%
استفاده از توابع برای اجتناب از تکرار کدها
3%
کپی کردن و چسباندن کدها در جاهای مختلف
👍7😎2❤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
❓کوئیز شماره ۱۱: Lambda Functions
کدوم تابع زیر میتونه برای مرتبسازی یک لیست از Tupleها بر اساس عنصر دوم استفاده شه؟
کدوم تابع زیر میتونه برای مرتبسازی یک لیست از Tupleها بر اساس عنصر دوم استفاده شه؟
Anonymous Quiz
71%
sorted(my_list, key=lambda x: x[1])
10%
sorted(my_list, key=lambda x: x[0])
13%
sorted(my_list, key=lambda x: x)
6%
sorted(my_list, key=lambda x: x[2])
👍6😎2👏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
❓کوئیز شماره ۱۲: List Comprehension
برای فیلتر کردن و حذف عناصر تکراری از یه لیست در زمان ایجاد یک لیست جدید با استفاده از list comprehension، چه تکنیکی به کار میره؟
برای فیلتر کردن و حذف عناصر تکراری از یه لیست در زمان ایجاد یک لیست جدید با استفاده از list comprehension، چه تکنیکی به کار میره؟
Anonymous Quiz
19%
[x for x in list if list.count(x) > 1]
57%
[x for x in set(list)]
17%
[list(x) for x in set(list)]
7%
[x for x in sorted(list)]
👍5😎2❤1👏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
❓کوئیز شماره ۱۳: Class
در پایتون، اضافه کردن چند _ (underscore) در ابتدای نام متغیرها و متدهای کلاس به چه نتیجهای منجر میشه؟
در پایتون، اضافه کردن چند _ (underscore) در ابتدای نام متغیرها و متدهای کلاس به چه نتیجهای منجر میشه؟
Anonymous Quiz
29%
یک _ قبل نام یک متغیر یا متد، اونو به صورت محافظت شده (protected) علامتگذاری میکنه.
14%
دو _ قبل نام یک متغیر یا متد، name obscuring رو فعال میکنه و نام پنهان میشه.
29%
دو _ قبل نام، name mangling رو فعال میکنه که نام کلاس رو به ابتدای متغیر یا متد اضافه میکنه.
29%
سه _ قبل نام، اونو به صورت private علامتگذاری میکنه و دسترسی بهش از خارج کلاس غیرممکن میشه.
😎5❤2👍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
❓کوئیز شماره ۱۴: Casting
در کتابخانه Pandas، اگه df یه DataFrame با ستون A باشه که شامل اعداد صحیحه، چطور میشه نوع دادههای این ستون رو به اعداد اعشاری تبدیل کرد؟
در کتابخانه Pandas، اگه df یه DataFrame با ستون A باشه که شامل اعداد صحیحه، چطور میشه نوع دادههای این ستون رو به اعداد اعشاری تبدیل کرد؟
Anonymous Quiz
63%
df['A'] = df['A'].astype('float')
7%
df['A'].to_numeric()
19%
df['A'] = float(df['A'])
11%
df['A'].cast('float')
😎8👍4❤1👏1
#Weekend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1👏1👨💻1
#Data_science
#Machine_Learning
#Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥1👨💻1
رگرسیون یک تکنیک آماریه که برای مدلسازی رابطه بین یک متغیر وابسته (Dependent Variable) و یک یا چند متغیر مستقل (Independent Variable) استفاده میشه.
به عبارت دیگه، رگرسیون سعی میکنه رابطه بین مقادیر متغیر وابسته و مستقل را بهصورت یک تابع ریاضی بیان کنه. در یادگیری ماشین، رگرسیون یکی از مهمترین تکنیکهای یادگیری با ناظر (Supervised Learning) هست.
انواع رگرسیون
رگرسیون کاربردهای گستردهای مثل پیشبینی قیمتها، پیشبینی فروش، پیشبینی جرم، پیشبینی بیماری و... در یادگیری ماشین و دیتا ساینس داره.
مثال: فرض کنید یک شرکت تولیدکننده کفش میخواد مقدار فروش کفشهاش رو در سال آینده پیشبینی کنه. این شرکت میتونه از رگرسیون خطی ساده برای این کار استفاده کنه.
توی این مثال، متغیر وابسته فروش و متغیر مستقل هزینه تبلیغات هست. شرکت میتونه از دادههای فروش و هزینه تبلیغاتش در سالهای گذشته برای آموزش مدل رگرسیون استفاده کنه. بعد از آموزش مدل، شرکت میتونه ازش برای پیشبینی مقدار فروش کفشها در سال آینده استفاده کنه.
#Data_science
#Machine_Learning
#Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3🔥1👨💻1
❓کوئیز شماره ۱۵: رگرسیون خطی
کدوم یک از این موارد، روشی صحیح برای افزایش دقت مدل رگرسیون خطیه؟
کدوم یک از این موارد، روشی صحیح برای افزایش دقت مدل رگرسیون خطیه؟
Anonymous Quiz
7%
افزودن هر چه بیشتر متغیرهای مستقل بدون در نظر گرفتن میزان اهمیت
8%
استفاده از ترانسفورماسیون لگاریتمی برای متغیرهای وابسته
40%
حذف تمام دادههای پرت
45%
استانداردسازی متغیرهای مستقل
😎10👍5🔥2👏1