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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🟣 چطور List ، Tuple و Set رو باهم ترکیب کنیم؟

همون طور که می‌دونین این سه، سه نوع متفاوت داده در پایتون هستن و با استفاده از روشی که در ویدئو گفته میشه می‎تونیم خروجی این سه نوع رو باهم ترکیب کنیم

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2🔥1
👨‍🏫 آموزش دیکشنری (Dictionary) در پایتون

دیکشنری در پایتون یه مجموعه نامرتب از جفت‌های key-values هست که با کلیدهای منحصربه‌فرد دسترسی سریع به داده‌ها رو ممکن می‌کنه. از کاربردهای دیکشنری در ماشین لرنینگ میشه به ذخیره‌سازی پارامترها و تنظیمات مدل‌، مدیریت و تبدیل داده‌ها و بهینه‌سازی هایپرپارامترها اشاره کرد.

🔵 دیکشنری‌های تو در تو امکان مدل‌سازی داده‌های پیچیده‌تر رو فراهم می‌کنن.

nested_dict = {'dictA': {'key_1': 'value_1'},
'dictB': {'key_2': 'value_2'}}
print(nested_dict['dictA']['key_1'])

🔜 value_1

🔵 دیکشنری‌ها قابلیت حلقه‌زدن با استفاده از comprehensionها رو دارن، که خروجی می‌تونه دیکشنری‌ جدیدی باشه.

squared_nums = {x: x**2 for x in range(6)}
print(squared_nums)

🔜 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

🔵 دیکشنری‌ها دارای متدهای مختلفی مثل get, keys, values, و items هستن که امکان دسترسی به اجزای دیکشنری رو فراهم می‌کنن.

data = {'apple': 2, 'banana': 3, 'cherry': 5}
print(data.get('apple')) # بازگرداندن مقدار کلید
print(list(data.keys())) # لیست کلیدها
print(list(data.values())) # لیست مقدارها
print(list(data.items())) # لیست جفت‌های کلید-مقدار

🔜 2
['apple', 'banana', 'cherry']
[2, 3, 5]
[('apple', 2), ('banana', 3), ('cherry', 5)]

🔵 به‌روزرسانی و ادغام دیکشنری‌ها با استفاده از متد update یا عملگر ** انجام میشه.

fruits = {'apple': 2, 'banana': 3}
vegetables = {'carrot': 4, 'beetroot': 1}
combined = {**fruits, **vegetables}
print(combined)

🔜 {'apple': 2, 'banana': 3, 'carrot': 4, 'beetroot': 1}

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94👨‍💻1
کوئیز شماره ۴: دسترسی به مقادیر در دیکشنری‌

اگه بخوایم به یک کلید غیرموجود در دیکشنری دسترسی پیدا کنیم و بجای خطا، یک مقدار پیش‌فرض برگرده، از کدوم متد استفاده می‌کنیم؟
Anonymous Quiz
30%
dict.get(key)
11%
dict[key]
48%
dict.setdefault(key)
11%
dict.find(key)
👍8🔥2🤔21👏1😎1
This media is not supported in your browser
VIEW IN TELEGRAM
🟣 چطور از دو لیست مختلف یک Dictionary ایجاد کنیم؟

توی این ویدئو یادمی‌گیریم که چطور با استفاده از تابع zip این کار رو انجام بدیم و خروجی رو به صورت یک Tuple داشته باشیم.

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

چندتایی در پایتون یک ساختار داده‌ایه که می‌تونه چندین مقدار رو در خودش نگه داره. این مقادیر می‌تونن از هر نوع داده‌ای باشن و ترتیب‌شون حفظ می‌شه. Tuple با استفاده از پرانتز () ایجاد می‌شه و مقادیر داخلش با , از هم جدا می‌شن.

ترتیبی که عناصر در Tuple قرار می‌گیرن هنگام بازیابی اطلاعات حفظ می‌شه. میشه به هر عنصر داخلش با استفاده از اندیس دسترسی پیدا کرد (Ordered & Indexable) .

my_tuple = (1, "Hello", 3.14)


🔵 یکی از ویژگی‌های کلیدی Tuple، غیرقابل تغییر (Immutable) بودن هست. در نتیجه پس از ایجاد، نمیشه مقادیرشون رو تغییر داد. این ویژگی اونا رو برای استفاده به عنوان کلید در دیکشنری‌ یا عناصری که نباید تغییر کنن، مناسب می‌کنه.

my_tuple = (1, 2)
try:
my_tuple[1] = 3 # تلاش برای تغییر دومین عنصر تاپل
except TypeError as e:
print("Error:", e) # نمایش پیغام خطا که نشان می‌دهد تاپل‌ها غیرقابل تغییر هستند

🔜'tuple' object does not support item assignment

🔵 چندتایی‌ها در عملیات unpacking بسیار مفیدن که در اون میشه چندین مقدار رو همزمان به متغیرهای مختلف اختصاص داد. این مورد در آماده‌سازی داده‌ها برای آموزش مدل‌های ماشین لرنینگ کاربرد زیادی داره.

x, y, z = (4, 5, 6)
print(x, y, z)

🔜 4 5 6

🔵 می‌تونن به عنوان خروجی توابع استفاده شن، در نتیجه میشه توابع پیچیده‌تری نوشت و چندین نتیجه برگردوند.
def min_max(numbers):
return min(numbers), max(numbers)
min_num, max_num = min_max([1, 2, 3, 4, 5])
print(min_num, max_num)

🔜 1 5

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👨‍💻43🔥1
کوئیز شماره ۴: Tuple

با فرض اینکه t = (1, 2, 3)، حاصل t * 2 کدوم گزینه‌ست؟
Anonymous Quiz
7%
(1, 2, 3, 2, 4, 6)
33%
TypeError
33%
(2, 4, 6)
27%
(1, 2, 3, 1, 2, 3)
👍8😎53🔥1🤔1
🟣 افزایش کارایی با استفاده از Tuple

یک نکته مرتبط در استفاده از Tuple در علم داده و یادگیری ماشین، کاربردشون در unpacking یا برگردوندن چندین مقدار از یک تابع‌ست. این مورد وقتی کاربرد داره که نیاز باشه تابع بیش از یک خروجی داشته باشه.

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🤔2🔥1
👨‍🏫 آموزش داده باینری (Boolean Type) در پایتون

در پایتون، داده‌های باینری یا Boolean Type، دو مقدار True و False رو می‌پذیرن که برای بیان درستی یا نادرست بودن یک عبارت به کاربرد دارن. این داده‌ها در عملیات‌های منطقی، کنترل جریان برنامه و تصمیم‌گیری‌های شرطی اهمیت دارن.

🔵 یکی از جنبه‌های کار با Boolean Typeها، استفاده از عملگرهای منطقی مثل and, or, و not هست که امکان ارزیابی ترکیبی از شرط‌ها رو فراهم می‌کنه.

x = True
y = False
print(x and y) # عملگر and
print(x or y) # عملگر or
print(not x) # عملگر not

🔜 False
True
False

🔵 می‌شه از Boolean برای کنترل حلقه‌ها و شرط‌ها استفاده کرد. مثل کنترل حلقه‌های while با یک شرط Boolean.

count = 0
while count < 5:
print(count)
count += 1


🔵 میشه از متدهای all() و any() برای بررسی شرایط استفاده کرد، که به ترتیب بررسی می‌کنن آیا تمام عناصر True هستن یا حداقل یکی‌شون True هست.

conditions = [True, False, True]
print(all(conditions)) # بررسی همه شرایط
print(any(conditions)) # بررسی حداقل یک شرط

🔜 False
True

🔵 از Boolean برای فیلتر کردن داده‌ها در لیست‌ها و بقیه ساختارهای داده‌ای هم میشه استفاده کرد. تابع filter() نمونه‌ای از این کاربرد این موضوعه.

numbers = [1, 2, 3, 4, 5]
even = filter(lambda x: x % 2 == 0, numbers)
print(list(even))

🔜 [2, 4]

🔵یه استفاده دیگه از Boolean در پایتون، Conditional Expressions هست. این عبارات که Ternary Operators هم نامیده می‌شن، اجازه می‌دن که یک عبارت شرطی رو در یک خط بنویسیم. این کار می‌تونه کد رو خلاصه‌تر و خواناتر کنه.

x = 10
y = 20
print("x is greater" if x > y else "y is greater or equal")

🔜 y is greater or equal

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👨‍💻3🔥2
کوئیز شماره ۶: Boolean Type

اگه list1 = [0, 1, 2] و list2 = [0, 1, 2] باشه، عبارت list1 is list2 چه مقداری برمی‌گردونه؟
Anonymous Quiz
57%
True
29%
False
2%
None
12%
SyntaxError
👍10😎6🤔4
This media is not supported in your browser
VIEW IN TELEGRAM
🟣 تبدیل نوع داده Boolean به String

اگه می‍خواین یه مقدار منطقی رو در رشته نشون بدین، اول باید به کمک ()str نوعش رو به رشته تغییر بدین.

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43👨‍💻2🔥1
👨‍🏫 آموزش حلقه For در پایتون

حلقه‌ها در پایتون ابزاری برای اجرای دستورات به صورت تکراری و بر اساس یک دنباله هستن. حلقه‌ها می‌تونن ساده یا پیچیده و تودرتو باشن.

🔵 ما می‌تونیم از حلقه برای اجرای دستورات بر روی عناصر یک لیست استفاده می‌کنیم.

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)

🔜 apple
banana
cherry

🔵 با استفاده از تابع enumerate, می‌تونیم indexها رو در حلقه‌ها به کار ببریم و دستورات پیچیده‌تری بنویسیم.

for index, fruit in enumerate(fruits, start=1):
print(f"fruit {index}: {fruit}")

🔜 fruit 1: apple
fruit 2: banana
fruit 3: cherry

🔵 در سطح پیشرفته، با ترکیب حلقه و comprehensions می‌تونیم لیست‌ها، مجموعه‌ها و دیکشنری‌های جدید تولید کنیم. این روش خلاصه، خوانا و بسیار کارآمده.

squares = {x: x*x for x in range(10)}
print(squares)

🔜 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

🔵 حلقه‌های تو در تو به ما امکان می‌دن تا روی ساختارهای داده‌ای مثل ماتریس‌ها کار کنیم.

matrix = [[1, 2], [3, 4]]
transposed = [[row[i] for row in matrix] for i in range(2)]
print(transposed)

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

🔵 با استفاده از توابع مولد (generator functions) در پایتون، امکان پیاده‌سازی دنباله‌هایی وجود داره که به جای اینکه تمام مقادیر رو به طور همزمان محاسبه و ذخیره کنن، به صورت تدریجی و تنها زمانی که نیاز به مقدار بعدی باشه (lazy evaluation)، اونها رو تولید می‌کنن. این شیوه کاربردی، فضای کمتری از حافظه رو اشغال می‌کنه و به افزایش کارایی برنامه هنگام کار با دنباله‌های حجیم کمک می‌کنه.

def count_down(start):
n = start
while n > 0:
yield n
n -= 1

print(*count_down(5))

🔜 5 4 3 2 1

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83👨‍💻2🔥1👏1
کوئیز شماره ۷: حلقه بی‌پایان در For

کدوم یک باعث می‌شه که حلقه for بی‌نهایت ادامه پیدا کنه؟
Anonymous Quiz
38%
for i in range(10): continue
52%
for i in iter(int, 1): pass
6%
for i in [1, 2, 3]: break
4%
for i in range(10): print(i)
👍7🤔2😎21
🟣 بهینه‌سازی حافظه و زمان با استفاده از itertools.chain

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

این کد تمام اعداد در list1 و list2 رو پیمایش می‌کنه، بدون اینکه نیاز باشه یک لیست جدید و بزرگتر ایجاد شه.
#Programming
#Python

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

🔺 آموزشی

🔵آموزش رشته (String) در پایتون
👉🔗 https://t.iss.one/data_ml/10

🔵آموزش لیست (List) در پایتون
👉🔗 https://t.iss.one/data_ml/14

🔵آموزش پیشرفته Set در پایتون
👉🔗 https://t.iss.one/data_ml/17

🔵آموزش دیکشنری (Dictionary) در پایتون
👉🔗 https://t.iss.one/data_ml/20

🔵آموزش چندتایی‌ها (Tuple) در پایتون
👉🔗 https://t.iss.one/data_ml/23

🔵آموزش داده باینری (Boolean Type) در پایتون
👉🔗 https://t.iss.one/data_ml/26

🔵آموزش حلقه For در پایتون
👉🔗 https://t.iss.one/data_ml/29

🔺 کوئیز

🔵کوئیز شماره ۱: متد ()title
👉🔗 https://t.iss.one/data_ml/12

🔵کوئیز شماره ۲: List
👉🔗 https://t.iss.one/data_ml/15

🔵کوئیز شماره ۳: Set
👉🔗 https://t.iss.one/data_ml/18

🔵کوئیز شماره ۴: دسترسی به مقادیر در دیکشنری‌
👉🔗 https://t.iss.one/data_ml/21

🔵کوئیز شماره ۵: Tuple
👉🔗 https://t.iss.one/data_ml/24

🔵کوئیز شماره ۶: Boolean Type
👉🔗 https://t.iss.one/data_ml/27

🔵کوئیز شماره ۷: حلقه بی‌پایان در For
👉🔗 https://t.iss.one/data_ml/30

🔺 نکات

🔵سه روش اضافه کردن مقدار متغییر به رشته
👉🔗 https://t.iss.one/data_ml/13

🔵جمع‌بندی متدهای List در پایتون
👉🔗 https://t.iss.one/data_ml/16

🔵چطور List ، Tuple و Set رو باهم ترکیب کنیم؟
👉🔗 https://t.iss.one/data_ml/19

🔵چطور از دو لیست مختلف یک Dictionary ایجاد کنیم؟
👉🔗 https://t.iss.one/data_ml/22

🔵افزایش کارایی با استفاده از Tuple
👉🔗 https://t.iss.one/data_ml/25

🔵تبدیل نوع داده Boolean به String
👉🔗 https://t.iss.one/data_ml/28

🔵بهینه‌سازی حافظه و زمان با استفاده از itertools.chain
👉🔗 https://t.iss.one/data_ml/31

#Weekend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥1👏1
👩‍🎓 برنامه آموزشی هفته: مرور نکات پایتون ۲

🟠شنبه: While (حلقه)

🔵یک‌شنبه: If condition (شرط)

🟢دوشنبه: Function (تابع)

🔴سه‌شنبه: Lambda F (تابع بدون نام)

🟠چهارشنبه: List Comprehension (لیست‌های پیچیده)

🔵پنج‌شنبه: Class (کلاس)

🟢جمعه: Casting (تبدیل نوع داده)

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥1👏1
👨‍🏫 آموزش حلقه While در پایتون

حلقه‌ while ابزار قدرتمندی برای تکرار دستورات تا زمان برآورده شدن یک شرطه.

🔵 یکی از کاربردهای while، پیاده‌سازی الگوریتم‌ها با شرط پیچیده‌ست. به عنوان مثال، می‌تونیم یک حلقه while بنویسیم که تا زمانی که جمع اعداد وارد شده توسط کاربر کمتر از ۵۰ باشه ادامه پیدا کنه.

sum = 0
while sum < 50:
number = float(input("یک عدد وارد کنید: "))
sum += number
print("جمع اعداد بیش از ۵۰ شد.")


🔵 استفاده از else با while، یک ویژگی منحصر به فرد در پایتونه که اجازه می‌ده پس از اتمام حلقه، بدون شکستن حلقه، کد خاصی اجرا شه.

count = 0
while count < 5:
print(count)
count += 1
else:
print("حلقه به اتمام رسید.")

🔜
0
1
2
3
4
حلقه به اتمام رسید.

🔵 ما می‌توانیم از while در ترکیب با try-except برای مدیریت خطاها در ورودی‌های کاربر استفاده کنیم و مطمئن شیم که برنامه در صورت ورودی نامعتبر، متوقف نمی‌شه.

while True:
try:
x = int(input("لطفاً یک عدد وارد کنید: "))
break
except ValueError:
print("مقدار وارد شده عدد نیست. دوباره امتحان کنید.")


🔵 حلقه‌های while می‌تونن برای اجرای وظایف به صورت موازی با استفاده از threading به کار برن. در نتیجه این امکان به وجود میاد که برنامه‌های تعاملی‌تر بسازیم.

import threading

def print_numbers():
i = 0
while i < 10:
print(i)
i += 1

t = threading.Thread(target=print_numbers)
t.start()

# ادامه کد برای انجام دیگر وظایف در حین اجرای thread


🔵می‌تونیم از while برای خوندن فایل‌ها استفاده کنیم، به‌طوری که تا آخر فایل رو بخونه:
with open('data.txt', 'r') as file:
while line := file.readline():
print(line.strip())


🔵حلقه‌ while رو میشه با توابعی مثل enumerate ترکیب کرد تا به indexها و مقادیر در یک لیست دسترسی داشته باشیم.

items = ['apple', 'banana', 'cherry']
index = 0
while index < len(items):
print(index, items[index])
index += 1

🔜 0 apple
1 banana
2 cherry

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2👨‍💻2
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