آموزش دیتاساینس و ماشین‌لرنینگ
1.89K subscribers
161 photos
9 videos
134 links
🔴 آموزش مباحث حوزه دیتا شامل علم داده، یادگیری ماشین و تحلیل داده (رضا شکرزاد)

🌀 کانال اخبار و منابع هوش مصنوعی:
@DSLanders

🌀 مشاوره و ارتباط مستقیم:
https://t.iss.one/dslanders_admin

یوتیوب:
Youtube.com/@RezaShokrzad

دوره‌ها:
cafetadris.com/datascience
Download Telegram
d = {'A': 1, 'B': 2, 'C': 3}
while d:
print(d.popitem())
print('Done')


#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
👍3
🟣 کاربرد Divide and Conquer در Tuning مدل‌های یادگیری ماشین

میشه از حلقه‌ while در روش Divide and Conquer برای بهینه‌سازی پارامترهای مدل در یادگیری ماشین استفاده کرد. این روش با اجرای حلقه تا رسیدن به شرایط خاص، مثل حداکثر دقت مدل یا کاهش تفاوت پارامترها به کمتر از Threshold تعیین‌شده، مؤثره.

این استراتژی، به‌ویژه برای Tuning دقیق مدل‌های پیچیده که جستجوی دستی برای پارامترها ناکارآمده، مفیده.

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2👨‍💻2
👨‍🏫 آموزش پیشرفته شرط‌ها (If Conditions) در پایتون

در پایتون، استفاده از 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))
🔜 Hot and Humid
print(check_temp_humidity(32, 45))

🔜 Hot or Humid

🔵 شرط‌های تو در تو (Nested If) برای بررسی شرایط متعدد در سطوح مختلف کاربرد دارن.

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))

🔜 A+
print(grade_evaluation(82))

🔜 B

🔵برای ارزیابی چندین شرط مختلف که تنها یکی‌شون باید اجرا شه از 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"))

🔜 Slow Down

🔵از 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))

🔜 3 is in the dataset.

🔵استفاده از if-else ترکیبی در لیست Comprehensions برای اعمال منطق‌های متفاوت بر اساس شرط. این روش به شما امکان می‌ده که منطق پیچیده‌ای رو در تنها یک خط کد به صورت خلاصه بیان کنین، و در نتیجه کدتون مختصر و مفیدتر شه.

numbers = [1, 2, 3, 4, 5]
new_list = ["Even" if num % 2 == 0 else "Odd" for num in numbers]
print(new_list)

🔜 ['Odd', 'Even', 'Odd', 'Even', 'Odd']

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥1👨‍💻1
💡 یه توصیه‌ مهم برای نوشتن شرط if

در پایتون، زمانی که می‌خوایم چک کنیم یک متغیر 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
👨‍🏫 آموزش تابع (Function) به صورت کاربردی در ماشین لرنینگ

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

🔵تابع برای محاسبه دقت مدل (Accuracy): تابع زیر دقت مدل رو با مقایسه پیش‌بینی‌های انجام شده با برچسب‌های واقعی محاسبه می‌کنه.

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%}")


🔵تابع برای پیش‌پردازش داده‌ها (Data Preprocessing): پیش‌پردازش یکی از مراحل اصلی در یادگیری ماشینه که شامل پاکسازی، نرمال‌سازی و تبدیل داده‌ها می‌شه. تابع زیر داده‌ها رو نرمال‌سازی می‌کنه تا مقیاس‌های یکسانی داشته باشن.

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)


🔵تابع برای ارزیابی مدل با استفاده از Cross-Validation: یک تکنیک ارزیابی که دقت مدل رو با تقسیم داده‌ها به چندین بخش و انجام آزمایش‌های متعدد اندازه‌گیری می‌کنه Cross-Validation هست.

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
👍71🔥1🤔1👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
🟣 تابع ()Any در پایتون

تابع ()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
👍62🔥1👨‍💻1
👨‍💻 آموزش Lambda Functions در پایتون

توابع Lambda در پایتون، توابعی هستن که به کمک کلیدواژه lambda تعریف می‌شن. این توابع به دلیل انعطاف‌پذیری و امکان نوشتن در یک خط، برای انجام عملیات‌های سریع بسیار کاربرد دارن.

این توابع می‌تونن هر تعداد پارامتر رو دریافت کنن اما تنها یک عبارت رو ارزیابی و مقدارش رو برمی‌گردونن. این عبارت به طور خودکار و بدون نیاز به استفاده از دستور return برگشت داده می‌شه.

🔵توابع Lambda معمولاً همراه با توابع سطح بالاتر مثل ()filter و ()map و ()reduce استفاده می‌شن که به ما اجازه می‌دن تا عملیات‌های پیچیده‌تر رو بر روی داده‌ها اجرا کنیم.

numbers = range(-5, 5)
negative_numbers = list(filter(lambda x: x < 0, numbers))
print(negative_numbers)

🔜 [-5, -4, -3, -2, -1]

squared = list(map(lambda x: x ** 2, numbers))
print(squared)

🔜 [25, 16, 9, 4, 1, 0, 1, 4, 9, 16]

from functools import reduce
# یافتن حاصل ضرب تمام اعداد در یک لیست
product = reduce(lambda x, y: x * y, [1, 2, 3, 4, 5])
print(product)

🔜 120

🔵توابع Lambda می‌تونن برای ایجاد فانکشن‌های فوری، در مواردی که نیاز به تعریف کامل تابع نیست، استفاده شن. این کار برای نوشتن کد تمیز و مختصر مفیده.

def apply_function(func, value):
return func(value)

result = apply_function(lambda x: x * x, 5)
print(result)

🔜 25

🔵توابع Lambda در مواردی مثل تعریف کلید‌های مرتب‌سازی یا به عنوان آرگومان برای توابع دیگه استفاده می‌شن.

names = ['David', 'Brian', 'Alice', 'Catherine']
sorted_names = sorted(names, key=lambda name: len(name))
print(sorted_names)

🔜 ['David', 'Brian', 'Alice', 'Catherine']

🔵این توابع می‌تونن برای مقایسه و مرتب‌سازی داده‌ها در ساختارهای داده‌ای پیچیده استفاده شن.


data = [(1, 'd'), (2, 'b'), (3, 'c'), (4, 'a')]
# برای مرتب‌سازی یک لیست از تاپل‌ها
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)

🔜 [(4, 'a'), (2, 'b'), (3, 'c'), (1, 'd')]

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥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 Comprehension) در پایتون

لیست‌های پیچیده یکی از قابلیت‌های قدرتمند پایتون هستن که به شما اجازه می‌ده با استفاده از حلقه‌ها و شرط‌ها در یک خط کد، لیست‌های پیچیده‌تری نسبت به حلقه‌های معمولی تولید کنید. 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)

🔜[6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96]

🔵میشه از یک تابع داخل لیست‌های پیچیده استفاده کرد. توی این مثال، یک تابع برای شناسایی اعداد مربع کامل تعریف و بعد در List Comprehension استفاده شده.

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)

🔜[1, 4, 9, 16, 25]

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

dataset['numeric_column'] = [float(value) for value in dataset['text_column']]
# تبدیل ستونی از داده‌های متنی به مقادیر عددی


🔵توی یادگیری ماشین، گاهی اوقات لازمه تا ویژگی‌های جدیدی از داده‌های موجود استخراج شن. با استفاده از List Comprehension میشه به سرعت ویژگی‌های جدیدی مثل طول رشته‌ها، تعداد کلمات، یا حتی پیچیدگی‌های آماری رو محاسبه کرد.

text_lengths = [len(text) for text in dataset['text_column']]
# محاسبه طول رشته‌ها برای یک ستون متنی


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

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👏21🔥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
👍63👨‍💻1
👨‍🏫 آموزش کلاس (Class) با کاربرد در دیتا ساینس و ماشین لرنینگ

کلاس یک طرح یا قالب کلی برای ایجاد شی‌ (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 باعث می‌شه که متد بدونه داره روی کدوم شی کار می‌کنه.

🔵قابلیت Multiple Inheritance اجازه می‌ده تا کلاس‌هایی با ویژگی‌های متعدد تعریف شن، مثلاً یک مدل می‌تونه هم زمان قابلیت‌های آموزش و پیش‌بینی رو داشته باشه.

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
👍63🔥1👨‍💻1
💡 بهینه‌سازی دسترسی به اجزای کلاس‌ در پایتون

یکی از ویژگی‌های جذاب در کلاس‌های پایتون، استفاده از ()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) در پایتون

به فرآیند تبدیل یک نوع یک داده به نوع دیگه، Casting گفته می‌شه. این مهارت برای تحلیل داده‌ها و برنامه‌نویسی موثر بسیار مهمه.

🔵یکی از مفاهیم پایه‌ای در casting، تبدیل متغیرهای ساده مثل رشته‌ها به اعداد و برعکسه. اما در سطح پیشرفته، باید بتونیم انواع داده‌های پیچیده‌تر مثل لیست‌ها، دیکشنری‌ها، و حتی اشیاء سفارشی رو cast کنیم.


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]


🔵یکی از روش‌های پیشرفته در تبدیل نوع داده، استفاده از سازنده (Constructor) کلاس برای تغییر دیکشنری به یک شیء در پایتونه.

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)

🔜Ali

🔵همچنین می‌تونیم انواع مجموعه‌ها رو بهم تبدیل کنیم. برای مثال، تبدیل یک لیست به مجموعه برای حذف مقادیر تکراری و بعد تبدیل مجددش به لیست.


duplicate_list = [1, 2, 2, 3, 4, 4, 4]
unique_list = list(set(duplicate_list))
print(unique_list)

🔜[1, 2, 3, 4]

🔵برای تبدیل انواع داده‌ها در تحلیل‌های پیشرفته، می‌توانیم از کتابخانه 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)

🔜A int64
B float64
C bool
dtype: object

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻2👏1
👩‍🎓 برنامه آموزشی هفته: محیط‌های توسعه‌ پایتون

🟠شنبه: PyCharm

🔵یک‌شنبه: Visual Studio Code

🟢دوشنبه: Jupyter Notebook

🔴سه‌شنبه: Spyder

🟠چهارشنبه: IDLE

🔵پنج‌شنبه: Atom

🟢جمعه: جمع‌بندی

#Python_IDEs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2👏1
👨‍🎓 آشنایی با PyCharm، محیط توسعه یکپارچه برای برنامه‌نویسی پایتون

یکی از محبوب‌ترین محیط‌های توسعه یکپارچه (IDE) برای زبان برنامه‌نویسی پایتون، PyCharm است. PyCharm به دلیل رابط کاربری کاربرپسند و امکانات گسترده‌ای که برای توسعه‌دهندگان فراهم می‌کنه، به عنوان یکی از انتخاب‌های اول برنامه‌نویسان پایتون شناخته می‌شه.

🔵 نسخه‌های PyCharm

🔵نسخه PyCharm Community Edition رایگانه و امکانات پایه‌ای رو فراهم می‌کنه و مناسب برای برنامه‌نویسان تازه‌کار و پروژه‌های کوچک و متوسطه.

🔵نسخه PyCharm Professional Edition تجاریه و امکانات پیشرفته‌تری شامل پشتیبانی از فریم‌ورک‌های وب Django، Flask و Pyramid، ابزارهای پایگاه داده مثل MySQL، PostgreSQL و SQLite و امکانات دیباگینگ و تست پیشرفته رو ارائه می‌ده. این نسخه بیشتر مناسب برنامه‌نویسان حرفه‌ای و پروژه‌های بزرگه.

🔵 ویژگی‌های اصلی PyCharm

🔵تکمیل خودکار کد (Code Completion): PyCharm با استفاده از موتور تکمیل خودکار قدرتمندش، به تکمیل سریع‌تر و کم خطاتر کدها کمک می‌کنه. این ویژگی به طور خودکار پیشنهاداتی برای نام متغیرها، توابع، و کلاس‌ها ارائه می‌ده.

🔵دیباگینگ قدرتمند: PyCharm دارای ابزارهای دیباگینگ پیشرفته‌ای هست. مثلا می‌شه Breakpoint تعیین کرد، متغیرها رو در زمان اجرا مشاهده کرد و مراحل اجرای برنامه رو گام به گام دنبال کرد.

🔵کنترل نسخه: PyCharm با سیستم‌های کنترل نسخه مثل Git، Mercurial، و Subversion یکپارچه شده. این امکان مدیریت تغییرات کد، همکاری تیم‌ها و پیگیری نسخه‌های مختلف پروژه رو ایجاد می‌کنه.

🔵تست کد: PyCharm ابزارهای تست خودکار رو برای نوشتن و اجرای تست‌های واحد (Unit Tests) فراهم می‌کنه. این IDE از چارچوب‌های تست مثل unittest، pytest، و nose پشتیبانی می‌کنه و به شما کمک می‌کنه تا از صحت عملکرد کد مطمئن شین.

🔵پشتیبانی از Jupyter Notebook: این IDE به طور کامل از Jupyter Notebook پشتیبانی می‌کنه.

#Python_IDEs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2👏1
👨‍🎓 محیط‌ توسعه یکپارچه ویژوال استودیو کد (Visual Studio Code)

ویژوال استودیو کد (VS Code) توسط شرکت مایکروسافت با هدف ساده‌سازی فرآیند توسعه نرم‌افزار و افزایش بهره‌وری توسعه داده شد. این ابزار، در سال ۲۰۱۵ به صورت منبع باز معرفی شد و به سرعت به یکی از پرکاربردترین IDEها در جامعه برنامه‌نویسان تبدیل شد.

🔵 مهم‌ترین ویژگی‌ها ویژوال استودیو کد

🔵محیط ساده و کاربرپسند: این ابزار با یک رابط کاربری ساده و در عین حال قدرتمند، امکان کار با انواع زبان‌های برنامه‌نویسی و ابزارهای توسعه رو فراهم می‌کنه.

🔵پشتیبانی از افزونه‌ها: VS Code به لطف معماری باز و قابلیت پشتیبانی از افزونه‌ها، انعطاف‌پذیری بالایی داره و هر کدوم از این افزونه‌ها قابلیت‌های جدیدی به این IDE اضافه می‌کنن.

🔵پشتیبانی از چند زبان برنامه‌نویسی: ویژوال استودیو کد از تعداد زیادی زبان برنامه‌نویسی پشتیبانی می‌کنه. بعضی از این زبان‌ها به صورت پیش‌فرض پشتیبانی می‌شن و بعضی دیگه از طریق نصب افزونه‌های مربوطه قابل دسترسی هستن.

🔵قابلیت‌های اشکال‌زدایی (Debugging): با ارائه امکان تنظیم Breakpoints، مشاهده مقادیر متغیرها در زمان اجرا و بررسی Stack Trace فرآیند کشف و رفع خطاها و توسعه رو ساده‌تر می‌کنه.

🔵قابلیت‌های IntelliSense: یکی از ویژگی‌های هوشمند ویژوال استودیو کد IntelliSense هست که با پیشنهاد خودکار کد (Autocomplete)، ارائه مستندات در لحظه و بررسی ساختار کدها، به توسعه‌دهندگان در نوشتن سریع‌تر و صحیح‌تر کدها کمک می‌کنه.

🔵 تفاوت‌های ویژوال استودیو کد با سایر IDEها

🔵سبکی و سرعت بالا: یکی از مهم‌ترین تفاوت‌های ویژوال استودیو کد با بسیاری از IDEهای دیگه، سبکی و سرعت بالاش هست. در حالی که IDEهای دیگه مثل Visual Studio و Eclipse به منابع سیستمی بیشتری نیاز دارن، ویژوال استودیو کد با سرعت بالا و مصرف منابع کمتر، تجربه کاربری بهتری رو ارائه می‌ده.

🔵منبع باز و رایگان بودن: ویژوال استودیو کد به صورت منبع باز و رایگان عرضه می‌شه. این ویژگی باعث شده که جامعه بزرگی از توسعه‌دهندگان با این ابزار کار کنن و با ایجاد افزونه‌ها این ابزار رو بهبود ببخشن. در حالیکه بعضی از IDEهای دیگه نیاز به خرید لایسنس یا نسخه‌های منبع باز اونها قابلیت‌های محدودی دارن.

🔵پشتیبانی از توسعه وب مدرن: ویژوال استودیو کد با ابزارهای پیشرفته‌ای برای توسعه وب مدرن همراهه. افزونه‌هایی مثل Live Server برای مشاهده آنی تغییرات در مرورگر، Prettier برای فرمت‌دهی خودکار کدها و Emmet برای تایپ سریع‌تر کد HTML/CSS، این ابزار رو به یک انتخاب عالی برای توسعه‌دهندگان وب تبدیل کرده.

#Python_IDEs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥1👏1
👨‍🎓 محیط توسعه یکپارچه Jupyter Notebook

یکی از محبوب‌ترین IDEها در دنیای برنامه‌نویسی Jupyter Notebook هست که در حوزه داده‌کاوی، یادگیری ماشین، و محاسبات علمی بسیار کاربرد داره.

🔵 محیط و قابلیت‌های Jupyter Notebook

🔵ساختار و طراحی: Jupyter Notebook یک محیط تحت وبه که به کاربران اجازه می‌ده تا با استفاده از مرورگر وب به نوشتن و اجرای کد بپردازن. این محیط از بیش از ۴۰ زبان برنامه‌نویسی از جمله Python، R، Julia، و Scala پشتیبانی می‌کنه. همچنین، کاربران می‌تونن خروجی‌های تعاملی شامل نمودارها، جداول و ویجت‌ها رو به‌صورت مستقیم در همین محیط مشاهده کنن.

🔵پشتیبانی از زبان‌های مختلف: یکی از ویژگی‌های منحصربه‌فرد Jupyter Notebook، پشتیبانی از چند زبان برنامه‌نویسیه که از طریق استفاده از کرنل‌ها فراهم می‌شه. هر کرنل برای یک زبان خاص طراحی شده. برای مثال، کرنل Python به نام IPython شناخته می‌شه.

🔵قابلیت اشتراک‌گذاری و همکاری: علاوه بر روش‌های اصلی به اشتراک گذاری و همکاری، ابزار JupyterHub در این IDE امکان استفاده چند کاربر از یک نوت‌بوک به‌صورت همزمان رو فراهم می‌کنه.

🔵 مزایا و تفاوت‌ها با سایر IDEها

🔵رابط کاربری تعاملی: برخلاف IDEهای سنتی مثل PyCharm یا Visual Studio این IDE دارای یک رابط کاربری تعاملیه که به کاربر اجازه می‌ده تا خروجی‌ها و نتایج را به‌صورت مستقیم مشاهده و تحلیل کنه. این ویژگی به‌ویژه در آزمایشگاه‌های داده‌کاوی و تحلیل داده‌ها بسیار مفیده.

🔵ادغام با ابزارهای داده‌کاوی و یادگیری ماشین: Jupyter Notebook به‌خوبی با ابزارهای مختلف تحلیل داده و یادگیری ماشین ادغام می‌شه.

🔵پشتیبانی از JupyterLab: نسخه پیشرفته‌تر Jupyter Notebook هست که قابلیت‌های بیشتری مثل چند پنجره و تب همزمان، مدیریت بهتر فایل‌ها و افزونه‌های بیشتر رو ارائه می‌ده. این محیط با قابلیت‌های جدیدی مثل تعامل بهتر با Git و بهینه‌سازی عملکرد، به یکی از انتخاب‌های اصلی توسعه‌دهندگان تبدیل شده.

#Python_IDEs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63👌1👨‍💻1
👨‍🎓 محیط توسعه یکپارچه Spyder

محیط توسعه یکپارچه Spyder (Scientific PYthon Development EnviRonment) برای زبان برنامه‌نویسی Python هست که برای تحلیل‌های علمی، داده‌کاوی، یادگیری ماشین و پژوهش‌های محاسباتی طراحی شده. این IDE به‌صورت متن‌باز و رایگان عرضه می‌شه.

🔵 رابط کاربری Spyder شامل سه بخش اصلیه:

🔵ویرایشگر کد اصلی‌ترین قسمت Spyder برای نوشتن کدهاست.

🔵کنسول Python (IPython Console) به کاربران اجازه می‌ده تا دستورات رو به‌صورت تعاملی وارد کرده و نتایج رو در لحظه مشاهده کنن. این قابلیت برای آزمایش سریع کدها و اجرا قطعه کد مفیده.

🔵یکی از ویژگی‌های برجسته این محیط Variable Explorer هست که در اون می‌شه تمام متغیرهای موجود در فضای کاری رو مشاهده و تغییر داد. این قابلیت برای تحلیل داده‌ها و بررسی نحوه تغییر متغیرها در طول اجرای برنامه کارآمده.

🔵 تفاوت‌های Spyder با دیگر IDE‌ها

🔵متمرکز بر محاسبات علمی: برخلاف IDEهایی مثل PyCharm که بیشتر برای توسعه نرم‌افزارهای بزرگ طراحی شدن، Spyder به‌ویژه برای تحلیل داده‌ها و محاسبات علمی بهینه‌سازی شده. این ویژگی باعث شده که Spyder انتخاب اول پژوهشگران، دانشجویان و متخصصان داده باشه. همچنین ادغام با کتابخانه‌ها و ابزارهای علمی به‌صورت پیش‌فرض در این محیط صورت گرفته و نیازی به نصب افزونه‌های متعدد نداره.

🔵رابط کاربری ساده‌تر: Spyder نسبت به بسیاری از IDEهای دیگه رابط کاربری ساده‌تر و کاربرپسندتری داره. در IDEهایی مثل PyCharm ممکنه به دلیل پیچیدگی و تعداد زیاد قابلیت‌ها برای مبتدیان با چالش‌ همراه باشه.

🔵سبک‌تر بودن و مصرف منابع کمتر: Spyder نسبت به سایر IDEها منابع کمتری از سیستم مصرف می‌کنه که برای کاربرانی که روی سیستم‌هایی با قدرت پردازشی محدود کار می‌کنن یا نیاز به اجرای هم‌زمان چند برنامه دارن کاربردیه.

#Python_IDEs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73👌2👨‍💻1
👨‍🎓 محیط توسعه یکپارچه IDLE و Atom

یک IDE ساده و پیش‌فرض برای زبان برنامه‌نویسی پایتون، IDLE هست که همراه با نصب پایتون به صورت خودکار در دسترس قرار می‌گیره. این ابزار توسط Guido van Rossum، خالق پایتون، توسعه داده شده و اسمش مخفف Integrated Development and Learning Environment هست.

🔵 ویژگی‌های IDLE

🔵سادگی: IDLE یک محیط توسعه بسیار ساده است و برای برنامه‌نویسان مبتدی که تازه با پایتون آشنا شدن، مناسبه.
🔵پوسته تعاملی (Interactive Shell): یک پوسته تعاملی داره که به برنامه‌نویس اجازه می‌ده تا کدهای پایتون رو به صورت زنده اجرا و نتایج رو مشاهده کنه.
🔵پرتابل: نیاز به نصب خاصی نداره و همراه با نصب پایتون در دسترس قرار می‌گیره.

🔵 محدودیت‌های IDLE

🔵قابلیت‌های محدود: نسبت به IDEهای پیشرفته‌تر، قابلیت‌های IDLE بسیار محدوده و برای پروژه‌های بزرگ و پیچیده مناسب نیست.
🔵عدم پشتیبانی از افزونه‌ها: برخلاف بسیاری از IDEها، IDLE قابلیت نصب افزونه‌ها و شخصی‌سازی پیشرفته رو نداره.
🔵عدم پشتیبانی از زبان‌های دیگه: IDLE فقط برای پایتون طراحی شده و از بقیه زبان‌های برنامه‌نویسی پشتیبانی نمی‌کنه.

از Atom می‌شه به عنوان یک ویرایشگر متن باز و قابل توسعه که توسط GitHub توسعه داده شده نام برد. این ویرایشگر به خصوص در بین توسعه‌دهندگان وب و برنامه‌نویسانی که با زبان‌های مختلف کار می‌کنن، محبوبیت زیادی داره.

🔵 ویژگی‌های Atom

🔵افزونه‌های متعدد: Atom دارای یک اکوسیستم گسترده از افزونه‌هاست که می‌تونن به سادگی از طریق یک Package Manager نصب شن. این افزونه‌ها قابلیت‌های ویرایشگر رو به طور قابل توجهی افزایش می‌دن.
🔵پشتیبانی از چند زبان برنامه‌نویسی: Atom از زبان‌های مختلفی مثل جاوااسکریپت، HTML، CSS، پایتون، و بسیاری دیگه پشتیبانی می‌کنه.
🔵ادغام با Git و GitHub: به دلیل توسعه توسط GitHub دارای ادغام عمیق با سیستم‌های کنترل نسخه Git و پلتفرم GitHub هست.

🔵 محدودیت‌های Atom

🔵سنگینی و مصرف منابع: Atom به دلیل استفاده از فریم‌ورک Electron کمی سنگینه و منابع زیادی از سیستم استفاده می‌کنه، به خصوص در سیستم‌های ضعیف‌تر.
🔵سرعت: نسبت به ویرایشگرهای ساده‌تر، Atom ممکنه کمی کندتر عمل کنه، مخصوصا در پروژه‌های بزرگ.
🔵نیاز به تنظیمات اولیه: برای بهره‌برداری کامل از قابلیت‌های Atom، نیاز به نصب و تنظیم افزونه‌های متعدده که برای کاربران مبتدی کمی پیچیده است.

#Python_IDEs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4👌1👨‍💻1
پست‌های هفته‌ای که گذشت رو این‌جا پیدا کنین!

🔺 آموزشی

🔵PyCharm IDE
🔵Visual Studio Code IDE
🔵Jupyter Notebook IDE
🔵Spyder IDE
🔵Atom & IDLE IDEs

🔺 کوئیز

🔵کوییز شماره ۲۰۰: ابزار Profiler در PyCharm
🔵کوییز شماره ۲۰۱: امکان مدیریت و اجرای وظایف مختلف پروژه در VS Code
🔵کوییز شماره ۲۰۲: استفاده از Magic Commands در Jupyter Notebook
🔵کوییز شماره ۲۰۳: امکان مشاهده مستندات و سایر اطلاعات در Spyder
🔵کوییز شماره ۲۰۴: پیاده‌سازی IDLE

#Weekend
#Python_IDEs

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1👏1