برای اینکه متوجه گردیم رشته ورودی ما شامل یک کلمه خاص یا یک الگو می باشد میتوانیم از متد str.contains استفاده کنیم. مثال زیر رو ببنید:
df['text'].str.contains('appointment')
0 True
1 True
2 False
3 False
4 False
خوب در نتیجه مشخص شد رشته اول و دوم کلمه apppintment رو شامل میشود
متد بعدی برای str پیدا کردن تعداد الگوی خاصی در یک رشته می باشد. برای اینکار از تابع str.count استفاده میکنیم. در این مثال میخواهیم بدانیم چند عدد داخل یک رشته قرار دارد.
همانطور که در درس قبلی گفتیم از d برای پیدا کردن ارقام استفاده میکنیم.
df['text'].str.count(r'\d')
0 3
1 4
2 3
3 4
4 8
اگر به رشته ابتدایی ما توجه کنید مشاهده میکنید پنجمین رشته ما شامل 8عدد می باشد.
حالا اگر بخواهیم تعداد عددهای داخل یک رشته رو پیدا کنیم و بصورت لیست نمایش دهیم میتوانیم از متد str.findall برای اینکار استفاده کنیم
df['text'].str.findall(r'\d')
0 [2, 4, 5]
1 [1, 1, 3, 0]
2 [7, 0, 0]
3 [1, 1, 1, 5]
4 [0, 8, 1, 0, 0, 9, 0,]
اگر بخواهیم زمان رو بصورت ساعت و دقیقه در پرانتز بصورت جداگانه قید کنیم کافیه عبارت منظم مربوط را بصورت گروه بندی شده با استفاده از پرانتز استفاده کنیم
df['text'].str.findall(r'(\d?\d):(\d\d)')
برای اینکه بتوانیم در پایتون دو عدد را با هم جمع کنیم و در خروجی نمایش دهیم میتوانیم از کد زیر برای اینکار استفاده کنید.
# Python3 program to add two numbers
number1
=
input
(
"First number: "
)
number2
=
input
(
"\nSecond number: "
)
# Adding two numbers
# User might also enter float numbers
sum
=
float
(number1)
+
float
(number2)
# Display the sum
# will print value in float
print
(
"The sum of {0} and {1} is {2}"
.
format
(number1, number2,
sum))
خروجی برنامه :
First number: 13.5 Second number: 1.54 The sum of 13.5 and 1.54 is 15.04
در چالش کد پایتون بفرست کد تخفیف بگیر، مخاطبین گرامی برای ما یک قطعه کد پایتون ارسال کردند و یک کد تخفیف 70 درصدی برای تهیه آموزش های سایت چالش پایتون برنده خواهند شد.
در این چالش دو تا از مخاطبین ما برنده شدند که کدهای ارسالی این دو دوست گرامی در ادامه قرار خواهیم داد.
برنده شماره یک : yousefnooredin
کد ارسالی: این برنامه تعدادی عدد از کاربر میگیرد و انرا مرتب میکند(بدون استفاده از تابع sort)
برنده شماره دو : امیرحسین صالحی
کد ارسالی: این کد پیاده سازی درخت تصمیم هست که در اون از هیچ یک از دستورات آماده ی پایتون استفاده نکردم و تمام الگوریتم ها رو خودم پیاده کردم .
نچه از گزارش اخیر مایکروسافت برمیآید، آن است که برنامهنویسان عاشق زبان پایتون هستند.
زبان برنامهنویسی پایتون با پیشیگرفتن از جاوا که زمانی زبان غالب برنامهنویسی بود، به دومین زبان پرطرفدار برنامهنویسی در گیتهاب (GitHub)، سایت متعلق به مایکروسافت برای بهاشتراکگذاری کدهای متنباز، تبدیل شد. پایتون اکنون موفق شده است جاوا را براساس تعداد مشارکتکنندگان در منبع پشتسر بگذارد و بر این مبنا، این زبان برنامهنویسی اکنون پس از جاوااسکریپت که از سال 2014 در رتبهی اول جا خوش کرده است، دومین زبان پرطرفدار بهشمار میآید. آمار ارائهشده براساس گزارش رتبهبندی Octoverse برای سال 2019 بهدست آمده است. کسب رتبهی دوم در این سایت نقطهی عطف بزرگی برای پایتون 30 ساله است که خالق آن، خیدو فنروسوم (Guido van Rossum)، در همین هفته و پس از ترک سِمَت خود در شرکت ذخیرهسازی کلاد دراپباکس (Dropbox)، اعلام بازنشستگی کرد. بیشتر خدمات پیشرفته و اپلیکیشنهای دسکتاپ این شرکت با استفاده از پایتون نوشته شدهاند. جنبهی جالب دیگر گزارش گیتهاب، رتبهبندی زبانها براساس سرعت رشد آنها است. زبان برنامهنویسی دارت گوگل و فریمورک فلاتر که برای تولید رابطهای کاربری برای برنامههای تحت اندروید و iOS کاربرد دارد، بیشتر از سایر زبانها مدنظر برنامهنویسان در گیتهاب قرار گرفته است. در سالهای 20 و 2019، دارت از بیشترین رشد برخوردار بوده و استفاده از آن در میان برنامهنویسان، 532 درصد بیشتر شده است. همچنین، زبان راست (Rust) موزیلا با رشد چشمگیر 235 درصد، پس از دارت در رتبهی دوم قرار دارد.نمودار زبانهای برنامهنویسی برتر در گیتهاب در پنج سال گذشته بیانگر افزایش محبوبیت پایتون است.
گیت هاب اکنون از 40 میلیون توسعهدهنده میزبانی میکند پایتون محبوبترین زبان برنامهنویسی 2019 لقب گرفت زبان برنامهنویسی جاوا 13؛ ابزاری برای بهرهوری بیشتر برنامهنویسان
زبان برنامهنویسی راست برای برطرفکردن باگهای امنیتی مرتبط با حافظه طراحی شده که رایجترین نقص امنیتی در نرمافزارهای مایکروسافت در یک دههی گذشته بوده است؛ بههمیندلیل، مایکروسافت آن را در پایگاه کدهای ویندوز خود استفاده و آزمایش میکند. سال گذشته، زبان برنامهنویسی کاتلین، زبان تأییدشدهی گوگل برای تولید برنامههای اندرویدی، بیشترین روند رشد را در گیتهاب تجربه کرد؛ اما با وجود رشد 2 درصدی در طول سال، دیگر در میان 10 زبان برتر 2019 مشاهده نمیشود. زبان تایپاسکریپت هم که مایکروسافت از آن پشتیبانی میکند و یکی از مجموعههای مافوق جاوااسکریپت بهشمار میآید، با 161 درصد رشد سریعی در سال گذشته تجربه کرد. دلیل رشد سریع این زبان برنامهنویسی را میتوان به تعداد زیاد برنامهنویسانی نسبت داد که از آن برای دستوپنجه نرمکردن با برنامههای بزرگ نوشتهشده با جاوااسکریپت استفاده میکنند. زبانهای دیگری که درزمرهی 10 زبان دارای بیشترین سرعت رشد در سالهای 20 و 2019 قرار میگیرند، عبارتاند از: اچسیال، پاورشل، اپکس، پایتون، اسمبلی و گو (Go). دارت: 532 درصد راست: 235 درصد اچسیال: 213 درصد کاتلین: 2 درصد تایپاسکریپت: 161 درصد پاورشل: 154 درصد اپکس: 151 درصد پایتون: 151 درصد اسمبلی: 149 درصد گو: 147 درصد قهرمان اصلی گزارش گیتهاب پایتون است که محبوبیتش را مدیون طرفداران علوم دادهای و علاقهمندان به سرگرمی و غنای کتابخانههای علوم دادهای، مانند نامپای است که این فرصت را دراختیار برنامهنویسان قرار داد تا کدهای پایتون را برای امور مربوط به یادگیری ماشین بهکار بگیرند. بخشی از انگیزهی مایکروسافت برای راهاندازی دورههای رایگان آموزش برنامهنویسی با پایتون در ماههای گذشته، جلب توجه برنامهنویسان به خدمات هوش مصنوعی آن در آژور است. یکی دیگر از نشانههای رونق علوم دادهای در گیتهاب، رشد نوتبوکهای ژوپیتر است که محیطی برای نوشتن و اجرای کدها با پشتیبانی از پایتون و آر و جولیا است.
خیدو فنروسوم، خالق زبان برنامهنویسی پایتون، هفتهی گذشته بازنشسته شد. علاوهبر آنچه گفته شد، گیتهاب در چند سال گذشته روی مسئلهی امنیت نیز سرمایهگذاری و توجه زیادی به کمک به برنامهنویسان برای یافتن و برطرفسازی آسیبپذیریها در کتابخانههای نرمافزاری متنباز یا نرمافزارهای وابسته به آنها کرده است. مسئولان شرکت میگویند هشدار آنها به برنامهنویسان موجب ترمیم بیشاز 7٫6 میلیون وابسته در همین سال شد. همچنین، این کار به انتشار بیش از 209 هزار ترمیم خودکار ازطریق سرویس رایگان Dependabot آن انجامیده است که ماه مه گذشته راهاندازی شد. بیش از 10 هزار همکار در بزرگترین پروژههای متنبازی که درحالحاضر در گیتهاب قرار دارند، مشغول همکاری هستند. بزرگترین پروژه تا زمان حال، ویژوال استودیو کد (Visual Studio Code) است که به محیط برنامهنویسی بسیار محبوبی برای برنامهنویسان فعال در پلتفرم گوگل تبدیل شده است. پروژهی ویژوال استودیو کد، 19،100 مشارکتکننده دارد. البته مایکروسافت پیش از آنکه شرکت گیتهاب را تصاحب کند، بزرگترین مشارکتکننده در پروژههای متنباز آن بهشمار میآمد. پروژههای دیگری که بیش از 10 هزار مشارکتکننده دارند، عبارتاند از: مستندسازی مایکروسافت آژور و فلاتر و فرست کانتریبیوشنز (First Contributions). نکتهی مهمی که در این گزارش بهچشم میخورد، مربوطبه متنبازبودن و استفادهی گیتهاب بهوسیلهی کشورهایی است که با تحریمهای آمریکا مواجه هستند. در ابتدای همین سال، گیتهاب دسترسی کاربران ساکن در کریمه و ایران را محدود کرد. این شرکت نمیخواهد کاری بیشتر از این انجام دهد که در قانون ایالات متحدهی آمریکا لازم دانسته شده است.در ژوئیه، گیتهاب به کاربران خود در کشورهای تحریمشده پیشنهاد کرد از سرور تجاری گیتهاب (GitHub Enterprise Server) استفاده کنند که نسخهی پولی و یکبار خرید (on-premise) این وبسایت برای میزبانی کدها بهصورت شخصی است؛ اما این وبسایت دیگر نمیتواند مجوز استفاده از محصول خود را بهصورت قانونی به کشورهای تحریمشده بفروشد. کاربران ساکن در کشورهای تحریمشده همچنان میتوانند در مخازن عمومی مشارکت کنند. در بخش سؤالها و جوابهای مطرحشده (FAQ) در سایت گیتهاب، دربارهی تحریمهای تجاری ایالات متحدهی آمریکا آمده است: سرور تجاری گیتهاب را نمیتوان به هیچکدام از کشورهای مندرج در فهرست کشورهای گروه E:1 در الحاقیهی شمارهی 1 تا بخش 740 در قسمت EAR یا به منطقهی کریمه واقع در اوکراین فروخت. این فهرست درحالحاضر شامل کشورهای کوبا، ایران، کرهشمالی و سوریه است؛ اما احتمال تغییر آن وجود دارد. این محدودیتها موجب بروز مشکلاتی در مسیر رشد گیتهاب شده است. دراینزمینه، در گزارش Octoverse آمده است: برنامهنویسان ایرانی دومین گروه با بیشترین نرخ رشد در پروژههای متنباز ایجادشده در مخازن عمومی گیتهاب هستند.
دراین درس میخواهیم نگاهی به داده های متنی و کار با کتابخانه pandas بپردازیم.
ابتدا بصورت زیر یک داده متنی معرفی خواهیم کرد .و قبل از معرفی داده، کتابخانه pandas رو ایمپورت میکنیم:
import pandas as pd
time_sentences = ["Monday: The doctor's appointment is at 2:45pm.",
"Tuesday: The dentist's appointment is at 11:30 am.",
"Wednesday: At 7:00pm, there is a basketball game!",
"Thursday: Be back home by 11:15 pm at the latest.",
"Friday: Take the train at 08:10 am, arrive at 09:00am."]
برای اینکه برای ستون این داده متنی، اسمی رو قرار بدهیم از تابع DataFrame بصورت زیر استفاده میکنیم
df = pd.DataFrame(time_sentences, columns=['text'])
df
در حال حاضر داده ما شامل یک ستون هست که هر سطر آن یک متن می باشد و هر ورودی ما شامل یک روز در هفته و همچنین یک یا دو ساعت و دقیقه در بین متن می باشد
❇️ با استفاده از ویژگی str میتوانیم به مجموعه ای از روش های پردازش رشته دسترسی پیدا کنیم.
برای مثال متد str.len نشان دهنده طول متن یا همان تعداد کارکترهای هر رشته می باشد.
df['text'].str.len()
دستور بالا برای ستون text از رشته ورودی ، طول هر رشته را محاسبه میکند و در خروجی چاپ میکند. دقت کنید این ستون شامل 5 سطر می باشد و برای هر سطر بصورت جداگانه تعداد کارکترها را نمایش خواهد داد.
0 46
1 50
2 49
3 49
4 54
❇️ حالا اگر بخواهیم بجای تعداد کارکتر، تعداد کلمات رو مشخص کنیم. کافیه ابتدا با متد str.split کلمات یک متن رو با استفاده فاصله بین کلمات جدا کنیم سپس برای محاسبه طول اقدام کنیم:
df['text'].str.split().str.len()
0 7
1 8
2 8
3 10
4 10
پس برای مثال رشته اول شامل 7 کلمه و 46 کارکتر می باشد.
در درس چهارم تصمیم داریم وارد یک محیط جدید کدنویسی به نام jupyter notebook شویم و کدهامون رو تو این محیط اجرا کنیم.
طریقه نصب و کار کردن تو این محیط رو قبلا در دوره یادگیری ماشین بصورت ویدئویی ضبط کرده بودیم و شما میتونید بصورت رایگان از طریق لینک زیر بهش دسترسی داشته باشید.
در چند سال اخیر شبکه های GAN در مرز علم یادگیری عمیق قرار گرفته اند و مورد توجه بسیاری از محققان این حوزه قرار گرفته اند. در این دوره 2 ساعته، ابتدا بدون تمرکز بر مباحث تئوری این شبکه ها به ارائه ایده ها و مفاهیم آن ها خواهیم پرداخت و در پایان یکی از پروژه های معروف و جذاب مربوط به این شبکه ها، یعنی تولید تصاویر صورت انسان توسط شبکه های GAN را در پایتون پیاده سازی می کنیم. این دوره برای کسانی که به تازگی وارد دنیای یادگیری عمیق شده اند و کسانی که قصد شروع یادگیری شبکه های GAN را دارند مفید خواهد بود.
به مناسب فرا رسیدن ماه محرم، همکاران وب سایت چالش پایتون با همراهی مهندس محمدحسین امینی تصمیم گرفتند یک وبینار زنده آموزشی بصورت کاملا رایگان برگزار نمایند. زمان برگزاری این وبینار به زودی اطلاع رسانی خواهد شد. از شما مخاطبین عزیز تقاضا داریم جهت حمایت از این نذری آموزشی این وبینار رایگان را اطلاع رسانی نمایید.
ظرفیت ثبت نام : 100 نفر
درباره این سایت