Python for Data Science
نتیجه سلول آخر در تصویر فوق چیست؟
نتیجه دو نظر سنجی
https://t.iss.one/py4ds/234
و
https://t.iss.one/py4ds/236
خیلی جالب هست
خصوصا در نظرسنجی دوم که بر اساس نتیجهگیری افراد از جواب نظرسنجی اولی بوده و همچنین که افراد بیشتری هم بهش جواب دادن
💡حالا بریم سراغ تحلیل
🗝جواب خلاصه:
در پایتون مبحثی به نام integer interning وجود داره که میتونید اینجا ببینید.
🔑جواب طولانی:
زمانی که در هر نوع REPL در پایتون مثل شل خودش یا شل ipython یا موارد مشابه دارید کدی رو اجرا میکنید که نیاز به اعداد صحیح داره، پایتون نمیدونه که شما قراره چه اعدادی رو استفاده کنید پس به صورت پیشفرض میاد و تمام اعداد صحیح در بازه ۵- تا ۲۵۶ رو میسازه تا حافظه جدیدی براشون در نظر گرفته نشه. در کل طول اجرای شل هم به همون آدرسها ارجاع میده.
🔺پس با این حساب در نظر سنجی اول عدد ۵۰۰ که در این بازه نیست نتیجه False داره، اما در نظر سنجی دوم نتیجه True هست.
🔴اما چه اتفاقی میافته اگر شما همین دو کد رو در حالتی که در یک فایل(ماژول) نوشته شده اجرا کنید؟
ج:پایتون در اینجا تمام کد رو میبینه پس نتیجه هر دو حالت فوق True هست.
🔎 @py4ds
https://t.iss.one/py4ds/234
و
https://t.iss.one/py4ds/236
خیلی جالب هست
خصوصا در نظرسنجی دوم که بر اساس نتیجهگیری افراد از جواب نظرسنجی اولی بوده و همچنین که افراد بیشتری هم بهش جواب دادن
💡حالا بریم سراغ تحلیل
🗝جواب خلاصه:
در پایتون مبحثی به نام integer interning وجود داره که میتونید اینجا ببینید.
🔑جواب طولانی:
زمانی که در هر نوع REPL در پایتون مثل شل خودش یا شل ipython یا موارد مشابه دارید کدی رو اجرا میکنید که نیاز به اعداد صحیح داره، پایتون نمیدونه که شما قراره چه اعدادی رو استفاده کنید پس به صورت پیشفرض میاد و تمام اعداد صحیح در بازه ۵- تا ۲۵۶ رو میسازه تا حافظه جدیدی براشون در نظر گرفته نشه. در کل طول اجرای شل هم به همون آدرسها ارجاع میده.
🔺پس با این حساب در نظر سنجی اول عدد ۵۰۰ که در این بازه نیست نتیجه False داره، اما در نظر سنجی دوم نتیجه True هست.
🔴اما چه اتفاقی میافته اگر شما همین دو کد رو در حالتی که در یک فایل(ماژول) نوشته شده اجرا کنید؟
ج:پایتون در اینجا تمام کد رو میبینه پس نتیجه هر دو حالت فوق True هست.
🔎 @py4ds
Telegram
🇵🇸Python for Data Science
نتیجه سلول آخر در تصویر فوق چیست؟
True / False
True / False
Forwarded from TechTube 𝕏 تک توب
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN 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
به گفته مدیرعامل گوگل هوش مصنوعی 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
🔴گوگل از Gemini رونمایی کرد؛ انقلابی در دنیای هوش مصنوعی
گوگل ماهها پس از انتشار اولین اخبار درباره مدل هوش مصنوعی جدید خود به نام Gemini در کنفرانس توسعهدهندگان I/O 2023، حالا بهطور رسمی از آن رونمایی کرده تا رقابت با OpenAI، سازنده ChatGPT، را وارد فاز تازهای کند. به گفته گوگل، این مدل یک پیشرفت بزرگ محسوب میشود که بهطور بالقوه روی تمام محصولات آن تأثیر میگذارد. همچنین گوگل میگوید این مدل جدید در اکثر بنچمارکها از GPT-4 قدرتمندتر است.
مدل هوش مصنوعی جمینای سه نسخه دارد. نسخه پایه با نام Gemini Nano میتواند بهطور بومی و آفلاین روی دستگاههای اندرویدی اجرا شود. نسخه قدرتمندتر، Gemini Pro که در اکثر سرویسهای هوش مصنوعی گوگل ازجمله چتبات بارد مورد استفاده قرار میگیرد. درنهایت نسخه Gemini Ultra که قدرتمندترین مدل زبانی گوگل محسوب میشود و احتمالاً در دیتاسنترها مورد استفاده قرار میگیرد.
🔎 @py4ds
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (MohammadMahdi)
Please open Telegram to view this post
VIEW IN TELEGRAM
📗 #معرفی_کتاب
Machine Learning A Probabilistic Perspective
🔺کتابی خوب برای یادگیری دقیق Machine learning
اگر میخواید یادگیری ماشین رو درست و حسابی یادبگیرید بهتره هرچه زودتر برای خوندن این کتاب برنامهریزی کنید!
🔎 @py4ds
Machine Learning A Probabilistic Perspective
🔺کتابی خوب برای یادگیری دقیق Machine learning
اگر میخواید یادگیری ماشین رو درست و حسابی یادبگیرید بهتره هرچه زودتر برای خوندن این کتاب برنامهریزی کنید!
🔎 @py4ds
🔺 امروز میخوام درباره یکی از ویژگیهای پایتون ۳.۸ به نام Literal Type صحبت کنم.
◀️ این ویژگی بر اساس pep586 پیادهسازی شده که به ما امکان میده نوع دادههای حرفی (literal) رو تعریف کنیم. این نوع دادهها نشون میدن که یک متغیر یا یک عبارت یک مقدار مشخص و ثابت داره. برای مثال، اگر میخواهیم یک تابع بنویسیم که فقط مقادیر "put" یا "patch" رو قبول کنه، میتونیم از
به عنوان نوع ورودی استفاده کنیم. این کار به ما کمک میکنه که کد رو بهتر مستندسازی کنیم و از خطاهای احتمالی جلوگیری کنیم. برای اطلاعات بیشتر میتونید به [مستندات رسمی پایتون](https://peps.python.org/pep-0586/) مراجعه کنید.
برای استفاده از Literal Type باید از ماژول typing وارد کنیم:
همانطور که میبینید، اگر مقداری غیر از "put" یا "patch" به تابع بدهیم، خطای نوع داده دریافت میکنیم. این روش به ما امکان میده که کد رو برای خواننده و تحلیلگر قابل فهمتر کنیم.
میشه Literal Typeها را با سایر نوعهای داده ترکیب کنیم. برای مثال، اگر میخواهیم تابعی بنویسیم که یک رشته را بگیرد و آن را چاپ کند، میتوانیم از Union استفاده کنیم:
به این ترتیب، میتوانیم محدودیتهایی روی نوع ورودیهای تابع بگذاریم و کد رو قویتر کنیم.
🔹امیدوارم این پست براتون مفید بوده باشه. ممنون از توجهتون. منتظر نظرات و پیشنهادات شما هستم.
🔎 @py4ds
◀️ این ویژگی بر اساس 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
Python Enhancement Proposals (PEPs)
PEP 586 – Literal Types | peps.python.org
This PEP proposes adding Literal types to the PEP 484 ecosystem. Literal types indicate that some expression has literally a specific value. For example, the following function will accept only expressions that have literally the value “4”:
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 تر میکنه. حالا میتونه اون فانکشن رو صدا بزنی بدون اینکه اطلاعات دیگه ای از یوزر داشته باشی یا بدون اینکه هیت بزنی به دیتابیس پس حتی میشه گفت پرفومنس رو بهتر هم میکنه.
به این قانون law of demeter هم میگن. هدفشم چیزی جز بهتر شدن reusability کدتون و راحت تر تست نوشتن نیست.
@ManiFoldsPython
وقتی به یک موز نیاز دارین تو یک تابعی , یک گوریلا با موز ندین به اون تابع! 😁 مقاله مدیوم:
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
Medium
Banana Gorilla Jungle — OOP
From the famous quote,