Python for Data Science
321 subscribers
112 photos
12 videos
12 files
53 links
اطلاعات مفید جهت یادگیری پایتون برای علم داده

مدرس: محمدصادق یزدانی
ارتباط با ادمین: @MSYZD
Download Telegram
شرکت گوگل از قدرتمندترین هوش مصنوعی خودش به نام Gemini برای رقابت با مدل GPT-4 رونمایی کرد.

به گفته مدیرعامل گوگل هوش مصنوعی Gemini نقطه عطفی برای این شرکت محسوب میشه و قدرت بالای اون روی تمام محصولات گوگل تاثیر خواهد گذاشت و اونهارو بهتر خواهد کرد.

هوش مصنوعی Gemini در سه مدل عرضه میشه:
مدل Nano کوچکترین و بهینه ترین اونهاست که میتونه به صورت افلاین در گوشیهای اندرویدی استفاده بشه.
مدل Pro مدل بهینه و سریعی هست که قدرتی در حد GPT 3.5 داره و در کارهای مختلف میشه از اون استفاده کرد و در طیف وسیعی از محصولات گوگل از جمله سرچ، کروم و غیره از اون استفاده خواهد شد.
مدل Ultra که رقیب GPT-4 هست، قویترین و پیشرفته ترین مدل ساخته شده توسط گوگله و برای حل دستورات پیچیده از اون استفاده خواهد شد.

برخلاف بقیه مدلها که عمدتا روی متن تمرین داده شدن، Gemini به طور ترکیبی روی متن، عکس، ویدیو و فایلهای صوتی تمرین داده شده بنابراین درک چند حسی بالایی داره و میتونه درخواستهایی همراه با ورودی متنی، تصویری و صوتی رو با دقت بالایی همراه با قدرت استدلال بالا جواب بده.

مدل اولترای Gemini در 30 تست از 32 تست استاندارد از هوش مصنوعی GPT-4، قویترین مدل موجود، قویتر ظاهر شده و بالاخره بعد از ماه ها شاهد مدلی خواهیم بود که از این مدل میتونه پیشرفته تر باشه.

مدل Nano از طریق اپدیتی روی گوشیهای پیکسل برای قابلیتهایی مثل ارائه پیشنهادات بهتر در جواب مسیجها عرضه شده. مدل Pro در حال حاضر روی هوش مصنوعی بارد فعال شده و میتونید از حالا از اون استفاده کنید. مدل Ultra هم از اوایل سال میلادی اینده در اختیار مشتریان این شرکت قرار خواهد گرفت.

🔎 blog.google

📍 @TechTube
Media is too big
VIEW IN TELEGRAM
🔻بخشی از توانایی‌های هوش مصنوعی Gemini گوگل

🔴گوگل از Gemini رونمایی کرد؛ انقلابی در دنیای هوش مصنوعی

گوگل ماه‌ها پس از انتشار اولین اخبار درباره مدل هوش مصنوعی جدید خود به نام Gemini در کنفرانس توسعه‌دهندگان I/O 2023، حالا به‌طور رسمی از آن رونمایی کرده تا رقابت با OpenAI، سازنده ChatGPT، را وارد فاز تازه‌ای کند‌. به گفته گوگل، این مدل یک پیشرفت بزرگ محسوب می‌شود که به‌طور بالقوه روی تمام محصولات آن تأثیر می‌گذارد. همچنین گوگل می‌گوید این مدل جدید در اکثر بنچمارک‌ها از GPT-4 قدرتمندتر است.

مدل هوش مصنوعی جمینای سه نسخه دارد. نسخه پایه با نام Gemini Nano می‌تواند به‌طور بومی و آفلاین روی دستگاه‌های اندرویدی اجرا شود. نسخه قدرتمندتر، Gemini Pro که در اکثر سرویس‌های هوش مصنوعی گوگل ازجمله چت‌بات بارد مورد استفاده قرار می‌گیرد. درنهایت نسخه Gemini Ultra که قدرتمندترین مدل زبانی گوگل محسوب می‌شود و احتمالاً در دیتاسنترها مورد استفاده قرار می‌گیرد‌.
🔎 @py4ds
Forwarded from سید و رفقا / Programming (MohammadMahdi)
تازه لایسنسشم MIT عه 😎
#اسنپ_فود

😸 @SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
📗 #معرفی_کتاب
Machine Learning A Probabilistic Perspective

🔺کتابی خوب برای یادگیری دقیق Machine learning
اگر میخواید یادگیری ماشین رو درست و حسابی یادبگیرید بهتره هرچه زودتر برای خوندن این کتاب برنامه‌ریزی کنید!

🔎 @py4ds
Murphy_Machine_Learning.pdf
45.8 MB
📗 Machine Learning A Probabilistic Perspective

🔎 @py4ds
🔺 امروز می‌خوام درباره یکی از ویژگی‌های پایتون ۳.۸ به نام Literal Type صحبت کنم.

◀️ این ویژگی بر اساس pep586 پیاده‌سازی شده که به ما امکان می‌ده نوع داده‌های حرفی (literal) رو تعریف کنیم. این نوع داده‌ها نشون می‌دن که یک متغیر یا یک عبارت یک مقدار مشخص و ثابت داره. برای مثال، اگر می‌خواهیم یک تابع بنویسیم که فقط مقادیر "put" یا "patch" رو قبول کنه، می‌تونیم از
Literal["put", "patch"]

به عنوان نوع ورودی استفاده کنیم. این کار به ما کمک می‌کنه که کد رو بهتر مستندسازی کنیم و از خطاهای احتمالی جلوگیری کنیم. برای اطلاعات بیشتر می‌تونید به [مستندات رسمی پایتون](https://peps.python.org/pep-0586/) مراجعه کنید.

برای استفاده از Literal Type باید از ماژول typing وارد کنیم:
from typing import Literal

def send_request(method: Literal["put", "patch"]) -> None:
if method == "put":
# do something with put
elif method == "patch":
# do something with patch
else:
raise ValueError("Invalid method")

send_request("put") # OK
send_request("patch") # OK
send_request("post") # ValueError: Invalid method

همانطور که می‌بینید، اگر مقداری غیر از "put" یا "patch" به تابع بدهیم، خطای نوع داده دریافت می‌کنیم. این روش به ما امکان می‌ده که کد رو برای خواننده و تحلیلگر قابل فهم‌تر کنیم.

میشه Literal Typeها را با سایر نوع‌های داده ترکیب کنیم. برای مثال، اگر می‌خواهیم تابعی بنویسیم که یک رشته را بگیرد و آن را چاپ کند، می‌توانیم از Union استفاده کنیم:
from typing import Literal, Union

def print_string(s: Union[Literal["Hello", "World"], str]) -> None:
print(s)

print_string("Hello") # Hello
print_string("World") # World
print_string("Python") # Python
print_string(42) # TypeError: Argument 's' to 'print_string' has incompatible type 'int'; expected 'Union[Literal['Hello', 'World'], str]'

به این ترتیب، می‌توانیم محدودیت‌هایی روی نوع ورودی‌های تابع بگذاریم و کد رو قوی‌تر کنیم.

🔹امیدوارم این پست براتون مفید بوده باشه. ممنون از توجهتون. منتظر نظرات و پیشنهادات شما هستم.

🔎 @py4ds
Forwarded from Python BackendHub (Mani)
“… Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. “ —Joe Armstrong, creator of Erlang progamming language

وقتی به یک موز نیاز دارین تو یک تابعی , یک گوریلا با موز ندین به اون تابع! 😁 مقاله مدیوم:
https://medium.com/codemonday/banana-gorilla-jungle-oop-5052b2e4d588

یک مثال خیلی قشنگ. اشتباهی که خیلیا انجام میدن
مثلا شما به آیدی یوزر نیاز داری تو یک فانکشن. به جای اینکه یوزر رو بذاری تو signature و ایدی رو ازش بگیری سعی کن یوزر آیدی رو فقط بگیری. اینو به دلیل پرفومنس نمیگم چون تاثیری نداره ولی به این دلیل میگم که کدتون رو به شدت reusable تر میکنه. حالا میتونه اون فانکشن رو صدا بزنی بدون اینکه اطلاعات دیگه ای از یوزر داشته باشی یا بدون اینکه هیت بزنی به دیتابیس پس حتی میشه گفت پرفومنس رو بهتر هم میکنه.



# BAD
def activate_user(user: User, session) -> None
session.execute(sa.update(User).where(User.id==user.id).values(is_active=True)

# GOOD
def activate_user(user_id: UserId, session) -> None
session.execute(sa.update(User).where(User.id==user_id).values(is_active=True)


به این قانون law of demeter هم میگن. هدفشم چیزی جز بهتر شدن reusability کدتون و راحت تر تست نوشتن نیست.

@ManiFoldsPython
😁بکند vs. فرانت

🔎 @py4ds
🐍 anaconda در مقابل virtualenv: کدام یک را برای پایتون استفاده کنیم؟ 🐍

اگر شما یک کاربر پایتون هستید، ممکن است از anaconda و virtualenv، دو ابزار محبوب که می‌توانند به شما در ایجاد و مدیریت محیط‌ها و بسته‌های پایتون کمک کنند، شنیده باشید. اما چه تفاوت و مزیت و معایبی بین آن‌ها وجود دارد؟ و کدام یک را باید برای پروژه‌های خود استفاده کنید؟
در این پست، ما anaconda و virtualenv را از نظر ویژگی‌ها، مزایا و معایبشان مقایسه می‌کنیم و به شما چند راهنمای عمومی می‌دهیم که چگونه بهترین ابزار را برای نیازهای خود انتخاب کنید.

📕ابزار anaconda چیست؟
ابزار anaconda یک توزیع از پایتون و R است که با بسیاری از بسته‌های از پیش نصب شده برای علوم داده، یادگیری ماشین و محاسبات علمی همراه است. همچنین شامل کاندا، یک مدیر بسته و محیط است که می‌تواند بسته‌ها را از منابع مختلف نصب کند و محیط‌های جدا شده ایجاد کند. anaconda همچنین دارای یک رابط کاربری گرافیکی به نام ناوگان است که می‌تواند به مبتدیان و غیر برنامه‌نویسان در راه‌اندازی برنامه‌ها، مدیریت بسته‌ها و محیط‌ها و دسترسی به مستندات کمک کند.

📗ابزار virtualenv چیست؟
ابزار virtualenv یک ابزار است که به شما اجازه می‌دهد محیط‌های پایتون جدا شده ایجاد کنید. از pip به عنوان مدیر بسته خود استفاده می‌کند که بسته‌ها را از فهرست بسته پایتون (PyPI) نصب می‌کند. virtualenv یک ابزار خط فرمان است که نیاز به آشنایی با دستورات ترمینال دارد.

📘مزایا و معایب anaconda در مقابل virtualenv
این برخی از مزایا و معایب استفاده از anaconda در مقابل virtualenv هستند:
🔺ابزار anaconda فضای بیشتری از دیسک را در مقایسه با virtualenv اشغال می‌کند، زیرا با بسیاری از بسته‌هایی که ممکن است نیاز یا استفاده نداشته باشید، همراه است. virtualenv به شما اجازه می‌دهد تنها بسته‌هایی را که برای پروژه خود نیاز دارید نصب کنید، که می‌تواند فضا را صرفه‌جویی کند و تضادها را جلوگیری کند.
🔺ابزار anaconda می‌تواند محیط‌ها و بسته‌های R را هم مدیریت کند، که می‌تواند مفید باشد اگر با هر دو زبان کار کنید. virtualenv تنها برای پایتون است و شما برای مدیریت محیط‌ها و بسته‌های R به ابزار دیگری مانند رنو نیاز دارید.
🔺ابزار anaconda دارای یک رابط کاربری گرافیکی به نام ناوگان است که می‌تواند به مبتدیان و غیر برنامه‌نویسان در راه‌اندازی برنامه‌ها، مدیریت بسته‌ها و محیط‌ها و دسترسی به مستندات کمک کند. virtualenv یک ابزار خط فرمان است که نیاز به آشنایی با دستورات ترمینال دارد.
🔺ابزار anaconda مناسب‌تر برای پروژه‌های علوم داده و نیاز به مجموعه گسترده‌ای از بسته‌های از پیش نصب شده است. virtualenv انعطاف‌پذیرتر است و به شما کنترل بیشتری بر روی نسخه‌ها و بسته‌های پایتون می‌دهد.

📙چگونه بهترین ابزار را برای نیازهای خود انتخاب کنیم؟
تجربه کاربران ممکن است بسته به ترجیحات، نیازها و موارد استفاده‌شان متفاوت باشد. برخی از راهنمایی‌های عمومی عبارتند از:
🔺برای محیط‌های حداقلی: اگر شما ترجیح می‌دهید محیط‌های سبک و حداقلی داشته باشید، virtualenv انتخاب بهتری است .
🔺برای پروژه‌های علوم داده: اگر شما روی پروژه‌های علوم داده کار می‌کنید و نیاز به مجموعه گسترده‌ای از بسته‌های از پیش نصب شده دارید، anaconda مناسب‌تر است .
🔺برای مبتدیان: اگر شما تازه به پایتون علاقه‌مند شده‌اید و ترجیح می‌دهید یک رابط کاربری گرافیکی داشته باشید، ناوگان anaconda می‌تواند به شما کمک کند .
🔺برای کاربران پیشرفته: اگر شما با خط فرمان راحت هستید و می‌خواهید کنترل بیشتری بر روی نسخه‌ها و بسته‌های پایتون داشته باشید، virtualenv انعطاف‌پذیرتر است .

📝امیدوارl این پست به شما کمک کند تا مزایا و معایب استفاده از anaconda در مقابل virtualenv را بفهمید. اگر سوال یا نظری داشتید، لطفا بنویسید. 🙌

🔎 @py4ds
😁 چت‌جی‌پی‌تی برای اینکه بهتر جواب بده بهش وعده پول میدن😜

🐳 به نظرم اینم بد نیست که بهش بگی «اگر خوب بهم یاد بدی برات رزومه میشه» 😁😁😁😁

🔎 @py4ds
Media is too big
VIEW IN TELEGRAM
🧠شرکت OpenAI از اولین مدل متن به ویدیو خود به نام Sora رونمایی کرد.

🎬این مدل توانایی تولید ویدیوهایی تا حداکثر 60 ثانیه که صحنه‌های بسیار دقیق، حرکات پیچیده دوربین و شخصیت‌های متعدد با احساسات پر جنب و جوش را نشان می‌دهد را دارد. درحال حاضر افراد بسیار کمی به این مدل دسترسی دارند که به زودی شاهد افزایش آن خواهیم بود.

📃 اطلاعات بیشتر


🔎 @py4ds
مانی چند وقتیه که توی کانالش در مورد SQL به صورت تخصصی حرف میزنه،‌ یک آموزشایی میده بهتون که سطح اعتماد به نفستون رو میاره زیر صفر، که چرا من اینا بلد نبودم، وای چرا من گند زدم تو پروژه ملت با این سوادم و ...

خلاصه که برید تو کانالش یاد بگیرید یکم با دیتابیس مهربون تر باشید و درست تر کوئری بزنید و بابای سرور رو از توی پورت هاش نکشید بیرون

کانالش :
@PyBackEndHub

من تخصص اصلیم nosql هستش و اگر دوست داشته باشید بعضی وقتا در مورد دیتابیس های سری زمانی صحبت کنم و سیستم‌شون رو یاد بدم بهتون

🔎 @py4ds
🐳 Happy new year : Permission denied ;-)

#docker

🔎 @py4ds
کار با Enum :
‍‍‍
from enum import Enum

class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3

# You can access the enum members using their names.
print(Color.RED) # Output: Color.RED

# You can also access them using their values.
print(Color(1)) # Output: Color.RED

# Enum members are hashable, so they can be used in dictionaries and sets.
my_dict = {Color.RED: 'red', Color.GREEN: 'green', Color.BLUE: 'blue'}
print(my_dict[Color.RED]) # Output: 'red'

🔺از پایتون نسخه 3.4 Enum معرفی شده بود و در نسخه‌ی 3.6 نیز Flag, IntEnum, auto معرفی شد.

📝 برای IntEnum
‍‍‍
from enum import IntEnum

class Shape(IntEnum):
CIRCLE = 1
SQUARE = 2
TRIANGLE = 3

print(Shape.CIRCLE == 1) # Output: True

📝 برای Flag, auto
from enum import Flag, auto

class Permission(Flag):
READ = auto()
WRITE = auto()
EXECUTE = auto()

print(Permission.READ | Permission.WRITE) # Output: Permission.READ|WRITE


همچنین در نسخه 3.11 امکانات بیشتری بهش اضافه شد:
StrEnum, EnumCheck, ReprEnum, FlagBoundary, property, member, nonmember, global_enum, show_flag_values


class Direction(ReprEnum):
NORTH = "↑ North"
EAST = "→ East"
SOUTH = "↓ South"
WEST = "← West"

print(Direction.NORTH) # Output: ↑ North


class Permissions(FlagBoundary):
READ = 1
WRITE = 2
EXECUTE = 4

user_permissions = Permissions.READ | Permissions.WRITE
print(user_permissions) # Output: Permissions.READ | Permissions.WRITE


def show_flag_values(enum_class, value):
for member in enum_class:
if member & value:
print(f"{member.name}: {member.value}")

permissions = Permissions.READ | Permissions.WRITE
show_flag_values(Permissions, permissions)
# Output:
# READ: 1
# WRITE: 2


🔎 @py4ds
Forwarded from Sadra Codes
نسخه 0.5 پای‌اکشن هم رلیز شد! 💫

پای‌اکشن یه ابزاره متن‌بازه که اجازه می‌ده با استفاده از پایتون، گیت‌هاب اکشن بسازید!

توی این رلیز کلی اتفاق افتاده. پروژه دیگه یه تمپلیت ساده نیس و تبدیل شده به یه پکیج پایتون. علاوه‌بر بهترشدن داکیومنت و ساختار، یه فیچر خیلی خفن هم اضافه شده که واقعا استفاده از GitHub Issues رو یه لول می‌بره بالاتر!

این فیچر این قابلیت رو به شما میده تا از Issue Form گیت‌هاب بعنوان ساید فرانت اپ های پایتونتون استفاده کنید! این فیچر الان قابل استفاده هست و توتوریالش هم توی داک‌ها قرارداده شده.

یک مثال که می‌تونید با پای‌اکشن پیاده کنید: فرض کنید که یک ریپو NLP دارید که برای Text Summaraization استفاده می‌شه و می‌خواید مردم این قابلیت رو داشته باشن که تستش کنن. به راحتی می‌تونید ساختاری رو طراحی کنید که هرشخص بتونه یک ایشو باز کنه و در ایشو، از ابزار شما استفاده کنه. (همه‌چیز اتوماتیک اتفاق میوفته)

💅 Issue Form feature: pyaction.imsadra.me/tutorial/#issueform

🟣 PyAction repo: github.com/lnxpy/pyaction