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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
معرفی اولیه کانال
45👍12🔥6
👩‍🎓 برنامه آموزشی هفته: مرور نکات پایتون ۱

🟠شنبه: String (رشته حروف و اعداد)

🔵یک‌شنبه: List (لیست)

🟢دوشنبه: Set (مجموعه)

🔴سه‌شنبه: Dictionary (دیکشنری)

🟠چهارشنبه: Tuple (چندتایی)

🔵پنج‌شنبه: Boolean Type (داده باینری)

🟢جمعه: For (حلقه)

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍5👏2👨‍💻2
👨‍🏫 آموزش مبحث رشته (String) در پایتون

در زبان برنامه‌نویسی پایتون، رشته‌ها یک نوع از داده‌ هستن که به ترتیب از کاراکترها تشکیل شدن و می‌تونن داخل ' یا " قرار بگیرن.

🔵طول یک رشته: با تابع len می‌تونیم طول یک رشته رو بدست بیاریم.
my_string = "Hello, World!"
length = len(my_string)
print(f"String Length: {length}")

🔜 String Length: 13

🔵دسترسی به المان‌ها: میشه با استفاده از اندیس‌ها، به هر کاراکتر در یک رشته دسترسی پیدا کرد و یا از slicing برای دریافت یک بازه از کاراکترها استفاده کرد.
my_string = "Hello, World!"
first_char = my_string[0]  # حرف اول
substring = my_string[7:12]  # بازه از اندیس 7 تا 11
print(f"First Character: {first_char}, Substring: {substring}")

🔜 First Character: H, Substring: World

🔵ترکیب و تکرار رشته‌ها: میشه رشته‌ها رو باهم ترکیب یا تکرار کرد.
string1 = "Hello"
string2 = "World"
combined_string = string1 + " " + string2  # ترکیب رشته‌ها
repeated_string = string1 * 3 # تکرار رشته
print(f"Combined: {combined_string}, Repeated: {repeated_string}")

🔜 Combined: Hello World, Repeated: HelloHelloHello

🔵تبدیل حروف: با استفاده از متد ()lower. حروف رو به حروف کوچک و با استفاده از ()upper. حروف رو به حروف بزرگ تبدیل کرد.
my_string = "Hello, World!"
lowercase = my_string.lower()
uppercase = my_string.upper()
print(f"Lower: {lowercase}, UPPER: {uppercase}")

🔜 lower: hello, world!, UPPER: HELLO, WORLD!

🔵جایگزینی: با استفاده از متد ()replace. می‌تونیم یک زیررشته رو با یک زیررشته دیگه جایگزین کنیم.
my_string = "Hello, World!"
new_string = my_string.replace("Hello", "Hi")
print(f"New String: {new_string}")

🔜 New String: Hi, World!

🔵فرمت‌بندی رشته: از روش‌های فرمت‌بندی برای جلوگیری از ادغام دستی متغیرها به رشته استفاده کنیم.
name = "علی"
age = 25
message = f"سلام، من {name} هستم و {age} سال دارم"
print(message)

🔙 سلام، من علی هستم و 25 سال دارم

🔺 شما می‌تونین با کپی قطعه کدها و اجراشون داخل گوگل کولب به سادگی حتی روی گوشی موبایل اجرا بگیرین.

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍284👨‍💻4🤔1
کوئیز شماره ۱: متد ()title

کدوم گزینه خروجی کد print("abc def".title()) هست؟
Anonymous Quiz
19%
abc def
63%
Abc Def
13%
Abc def
5%
abc Def
👍19😎41👏1
This media is not supported in your browser
VIEW IN TELEGRAM
🟣 سه روش اضافه کردن مقدار متغییر به رشته

استفاده از + : با استفاده از + شما می‌تونین مقادیر مختلف رو در کنار هم چاپ کنین (Concatenate).

استفاده از f String : شما میتونین متغییرها رو داخل {} قرار بدین. توی پست قبلی ما از این روش استفاده کردیم.

استفاده از Format : توی این روش رشته رو داخل " " قرار می‌دیم و به جای متغییر {} می‌ذاریم. در آخر با نوشتن format به ترتیب متغییرها رو بهش پاس میدیم.

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

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

🔵یک روش کوتاه و خواناتر برای ایجاد لیست‌ها، دیکشنری‌ها یا مجموعه‌ها در پایتون، Comprehensions هستن. این ابزار به شما امکان می‌ده با استفاده از یک خط کد، لیست‌های پیچیده ایجاد کنین.
squared_numbers = [x**2 for x in range(10)]
even_numbers = [x for x in range(10) if x % 2 == 0]
print("Squared Numbers: {},\nEven Numbers: {}".format(squared_numbers,even_numbers))

🔜 Squared Numbers: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81],
Even Numbers: [0, 2, 4, 6, 8]

🔵پایتون متد‌های مختلفی برای لیست‌ها فراهم کرده که امکاناتی مثل مرتب‌سازی، برعکس کردن و اضافه کردن عناصر رو ممکن می‌کنن.
numbers = [3, 1, 4, 1, 5, 9, 2]
numbers.sort(); print("Sorted:", numbers) #مرتب کردن لیست
numbers.reverse(); print("Reversed:", numbers) #معکوس کردن
numbers.extend([10, 11, 12]); print("Extended:", numbers) #اضافه کردن عناصر جدید

🔜 Sorted: [1, 1, 2, 3, 4, 5, 9]
Reversed: [9, 5, 4, 3, 2, 1, 1]
Extended: [9, 5, 4, 3, 2, 1, 1, 10, 11, 12]

🔵لیست‌های تو در لیست به شما امکان می‌دن که داده‌ها رو در یک ساختار دوبعدی ذخیره کنین و با استفاده از اندیس‌ها به عناصر داخلی دسترسی پیدا کنین.
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
element = matrix[1][2]; print(element)

🔜 6

🔵برای ترکیب دو یا چند لیست با یکدیگر می‌تونیم از zip و برای دسترسی به اندیس و مقدار حلقه به صورت همزمان از  enumerate  استفاده کنیم.
numbers = [1, 2, 3, 4, 5]
names = ['Alice', 'Bob', 'Charlie']
combined = zip(numbers, names)
for index, (num, name) in enumerate(combined):
    print(f"Index: {index}, Number: {num}, Name: {name}")

🔜 Index: 0, Number: 1, Name: Alice
Index: 1, Number: 2, Name: Bob
Index: 2, Number: 3, Name: Charlie

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

چطور میشه با استفاده از List Comprehension لیستی ایجاد کرد که شامل مربعات اعداد فرد از 1 تا 10 باشد؟
Anonymous Quiz
10%
[x**2 for x in range(1, 11)]
81%
[x**2 for x in range(1, 11) if x % 2 == 1]
1%
[x**2 for x in range(1, 6)]
8%
[x for x in range(1, 11) if x % 2 == 1]
👍124😎2
📝 جمع‌بندی متدهای List در پایتون

متد ()append: یک عنصر جدید به انتهای لیست اضافه می‌کنه.

متد ()clear: تمام عناصر موجود در لیست رو پاک می‌کنه.

متد ()copy: یک کپی سطحی از لیست برمی‌گردونه یعنی تغییرات در کپی تاثیری بر لیست اصلی نداره.

متد ()count: تعداد دفعاتی که یک عنصر مشخص در لیست تکرار شده رو برمی‌گردونه.

متد ()extend: عناصر یک لیست رو به انتهای لیست جاری اضافه می‌کنه. این روش برای ادغام دو لیست باهم کاربرد داره.

متد ()index: اولین عنصر با مقدار مشخص رو برمی‌گردونه. اگر عنصر موجود نباشه، خطای ValueError رخ می‌ده.

متد ()insert:  یک عنصر رو در موقعیت مشخصی از لیست قرار می‌ده.

متد ()pop: عنصر موجود در موقعیت مشخصی رو حذف می‌کنه و برمی‌گردونه. اگر index داده نشه، آخرین عنصر حذف می‌شه.

متد ()remove: اولین نمونه از عنصر با مقدار مشخص رو حذف می‌کنه. اگر عنصر موجود نباشه، خطای ValueError رخ می‌ده.

متد ()reverse: ترتیب عناصر موجود در لیست رو معکوس می‌کنه.

متد ()sort: عناصر لیست را به صورت صعودی (پیش‌فرض) یا نزولی مرتب می‌کنه.

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍175🔥3
👨‍🏫 آموزش پیشرفته Set در پایتون

ست‌ها در پایتون، مجموعه‌هایی بدون ترتیب و با عناصر منحصربه‌فرد هستن که به دلیل سرعت بالا در عملیات‌های مجموعه‌ای و حذف داده‌های تکراری، یک ابزار کارآمد برای تحلیل داده‌ها محسوب می‌شن.

🔵 یکی از ویژگی‌های پیچیده‌ در setها، توانایی انجام عملیات‌های ریاضی مجموعه‌ای‌، مثل اجتماع، تقاطع، تفاضل و تفاضل متقارن هست.

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a | b)  # اجتماع
print(a & b)  # تقاطع
print(a - b)  # تفاضل
print(a ^ b)  # تفاضل متقارن

🔜 {1, 2, 3, 4, 5, 6}
{3, 4}
{1, 2}
{1, 2, 5, 6}

🔵 ست‌ها در پایتون از Comprehensions پشتیبانی می‌کنن، که با استفاده از شرط‌ها و حلقه‌ها، امکان ساخت setهای پیچیده‌تر فراهم می‌شه.

squared_primes = {x**2 for x in range(10) if is_prime(x)}
print(squared_primes)

🔜 {4, 9, 25, 49}

🔵 متد‌های پیشرفته setها مثل isdisjoint, issubset, و issuperset اجازه می‌دن روابط بین دو set رو بررسی کنیم.

c = {1, 2}
d = {1, 2, 3, 4}
print(c.isdisjoint(b))  # بررسی عدم اشتراک
print(c.issubset(d))    # بررسی زیرمجموعه بودن
print(d.issuperset(c))  # بررسی سوپرمجموعه بودن

🔜 False
True
True

🔵 برای افزودن یا حذف عناصر از ست‌ها، متدهای add, update, و discard کاربرد دارن که امکان مدیریت انعطاف‌پذیر عناصر رو می‌دن.

e = {1, 2, 3}
e.add(4)            # افزودن عنصر
e.update([5, 6, 7]) # افزودن چندین عنصر
e.discard(3)        # حذف عنصر
print(e)

🔜 {1, 2, 4, 5, 6, 7}

🔵 پایتون همچنین اجازه می‌ده ست‌های frozen ایجاد کنیم، که setهایی غیرقابل تغییر هستن و می‌توانن به عنوان کلید در دیکشنری‌ها استفاده شن.

f = frozenset([1, 2, 3])
print(f)

🔜 frozenset({1, 2, 3})

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