2- آشنایی با زبان پایتون

پایتون یکی از زبان‌های برنامه‌نویسی پرکاربرد است که استفاده از آن در علوم داده بسیار رایج است. پایتون یک زبان برنامه‌نویسی شی‌گرا Object oriented است. یکی از دلایل محبوبیت پایتون ، کاربرد آن در تعداد زیادی از حوزه‌ها است. برای مثال در حوزه گیمینگ، تولید نرم افزار از پایتون استفاده می‌شود. در این نوشته با انواع متغیرها در پایتون آشنا می‌شویم.

انواع متغیر در پایتون:

داده در پایتون به شکل‌های متعددی وجود دارد.

اگر متغیر از نوع رشته باشد با str نمایش داده می‌شود. همچنین داده‌های عددی در انواع int,float, و complex می‌توانند وجود داشته باشند. انواع دیگر داده‌ها در پایتون به شرح زیر هستند:

list, tuple,range که اصطلاحا به آن Sequence Type گویند. dict که از نوع mapping است. set, frozenset که به آن Set type گویند. نوع منطقی که bool نام دارد. باینری‌ها : bytes,bytearray,memoryview و در نهایت NoneType

با استفاده از تابع Type می‌توان نوع آن را بدست آورد. در ویدئوی زیر نحوه بدست آوردن نوع متغیر توضیح داده شده است:

تعریف متغیر در پایتون:

در تعریف یک متغیر تا حد ممکن باید سعی کنیم نکات زیر را رعایت کنیم:

1- تا حد ممکن باید سعی کنیم نام متغیر انتخابی ما معنا‌دار باشد.

2- نام متغیر نمی‌تواند با عدد شروع شود. برای مثال a1=3 درست است اما 1a=3 نادرست بوده و به ما خطا بر می‌گرداند.

تفاوت ” ” و ‘ ‘ در پایتون:

این دو مورد با یکدیگر تفات ندارند. برای اثبات این موضوع کافی است کد زیر را در پایتون اجرا کنید:

در مورد اندیس گذاری:

یک نکته مهم در اندیس‌گذاری در پایتون این است که اندیس‌گذاری از صفر شروع می‌شود (نه یک!)

همچنین اینکه (فاصله) موجود در یک رشته نیز یک شماره به خود می‌گیرد. رشته‌ها را می‌توان با یکدیگر جمع نمود . مثلا اگر pat و mat دو رشته‌ی مستقل باشند، با جمع کردن می‌توان آن‌ها را به یک رشته تبدیل کرد.

تفاوت list وtuple در پایتون در چیست؟

تفاوت لیست و تاپل (سوالی که در مصاحبه‌های کاری معمولا پرسیده می‌شود) در این است که دیتای موجود در لیست قابل تغییر و ویرایش است، اما این امکان در تاپل وجود ندارد. در ویدئوی زیر این موضوع بیستر مورد بررسی قرار گرفته است:

لینک ویدئو

دادهSET در پایتون:

این نوع داده در پایتون با علامت کروشه {} نمایش داده می‌شود. و نکته‌ای که در مورد SET وجود دارد این است که در set داده تکراری نمی‌توانیم داشته باشیم:

لینک ویدئو

دیکشنری در پایتون:

هر عضو دیکشنری دو بخش KEY , VALUE دارد.

my_disk={‘key1’: ‘value1’ , ‘key2’: ‘value2’}

مقادیر value می‌توانند رشته یا عدد و یا حتی لیست باشند. برای مثال در نمونه زیر هر سه نمونه را داریم.

dic_1={‘a’:’shahram’, ‘b’:1, ‘c’:[1,2,3]}

برای فراخوانی نیز مطابق دستور زیر عمل می‌کنیم:

dic_1[‘c’]

در این حالت اگر کلید Shift+tab را بزنیم اطلاعات موجود در مورد دیتای ما برگردانده می‌شود.

اگر تنها کلید tab را بزنیم، متودهای قابل اجرا بر روی این متغیر نمایش داده می‌شود. در این حالت باید حتما نقطه را جلوی متغیر قرار دهیم و سپس کلید tab را بزنیم.

چگونه بدانیم متودها مختلف چه کاری انجام می‌دهند؟

با استفاده از علامت سوال بعد از method می‌توان، از کاری که آن متود برای ما انجام می‌دهد، اطلاع پیدا نمود.

?my_touple.count

همچنین با استفاده از پرانتز و فشردن همزمان کلید shift+tab راهنمای مرتبط با متود مورد نظر برای ما نمایش داده می‌شود:

()my_touple.count

مثلا اگر بخواهیم بدانیم یک مقدار ، چندمین ایندکس را به خود اختصاص داده است از کد زیر استفاده می‌کنیم:

()my_touple.index

در مورد and و or :

(2>1) با (2>3) and شوند، جواب آن false است.

ولی اگر (2>1) با (2>3) or شوند،جواب درست خواهد بود. چون یکی از عبارات شرطی درست است. و با Or شدن با هرچیز دیگر نتیجه درست خواهد داد.

در مورد if:

در کد زیر از if و elif استفاده شده است:

a = int(input())
:if a<5
print(‘less than 5’)
:elif 5<a<=10
print(‘more than 5 but less than 10’)
:elif a==5
print(‘it is 5’)
:else
print(‘Not in range 0 to 10’)

حلقه For :

در مثال زیر یک نمونه ساده نحوه استفاده از For آورده شده است:

a=5
:for i in range(0,a)
print(i)
print(‘yes’)

حلقه با while:

i=1
:while i <5
print(i)
i=i+1

کتابخانه‌های پایتون: (از ویدئو کانال آموزشی مهندس حاتمی (لینک)-با طول 58:13 )

ابتدا با دستور زیر کتابخانه پانداس را ایمپورت می‌کنیم.

import pandas as pd
با متود tail و head می‌توانیم اطلاعاتی را در مورد دیتای خود بدست بیاوریم. اگر بخواهیم اطلاعات بیشتری بدیت بیاوریم از describe استفاده می‌کنیم.

تفاوت attribute و method :

مورد اول یعنی attribute یک ویژگی را به دیتای ما نسبت می‌دهد، اما method یک عملیات بر روی دیتای ما انجام می‌دهد. برای مثال describe نوعی از method است. چون برای بدست آوردن میانگین ، میانه و … باید عملیاتی انجام دهد. همچنین mean و max نوعی از متود هستند.

ساختار داده در پانداس به چه صورت است؟

ساختار داده در پانداس به یکی از دو صورت زیر خواهد بود:

1- سری : به سادگی یعنی پست سر هم هستند.
2-دیتا فریم: زمانی که جدولی یا دوبعدی باشند.

در مثال زیر میخواهیم با استفاده از پانداس دیتای خود را در قالب سری در بیاوریم:

labels=[‘a’,’b’,’c’]

my_list=[10,20,30]

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

pd.Series(data=my_list)

اما اگر بخواهیم برای داده‌های خود ایندکس نیز مشخص کنیم از دستور زیر استفاده می‌کنیم:

pd.Series(data=my_list,index=labels)

همچنین دستور زیر همان کار را انجام می‌دهد:

pd.Series(my_list,labels)

با استفاده از دیکشنری نیز می‌توانیم دیتافریم بسازیم.

***

نکته: در دستور زیر axis=1 یعنی ستون را می‌خواهیم حذف کنیم. اگر axis=0 بود منظورمان سطر بود. باید حواسمان باشد که به صورت default در پایتون axis=0 تعریف شده است.

df.drop(‘new’,axis=1)

همانطور که در تصویر زیر مشخص است که با وجود دراپ کردن ستون new در خط شماره 31 ، در خط شماره 32 ستون حذف نشده است و دلیل آن این است که از آرگومان Inplace=True استفاده نکرده‌ایم. (یعنی دیتا فریم جدید ساخته شده را با قبلی جایگزین کن)

تفاوت df.loc و df.iloc :

در مورد i برگرفته از index است . بنابراین اگر بخواهیم با استفاده از index به بخشی از دیتا برویم از iloc استفاده می‌کنیم . برای مثال df.iloc [2] سطر دوم از دیتا را به بر می‌گرداند. و همچنین اگر بخواهیم با استفاده از نام ستون به بخشی از داده برویم ، از df.loc استفاده می‌کنیم. برای مثال df.loc[‘A’] ستونی به نام A را به ما بر می‌گرداند. همچنین اگر بخواهیم به عنصری در سطر اول و ستون A دسترسی داشته باشیم از df.loc[‘0′,’A’] استفاده می‌کنیم.

مبحث Conditional Selection :

دقیقه 21 +

این مبحث در هنگام data cleaning کاربرد زیادی دارد.

کتابخانه numpy: دقیقه 25 – +

این کتابخانه امور جبری را به خوبی انجام می‌دهد. با دستورات زیر هر دو کتابخانه‌های مربوطه را نصب و فراخوانی می‌کنیم:

pip install numpy!
import numpy as np

انواع داده در numpy :

مقادیر در نامپای یا به صورت بردار یا vector هستند (یک بعدی) و یا به صورت ماتریس (دو بعدی)

یکی از پرطرفدارترین کتابخانه‌ها برای نمایش نمودار‌ها کتابخانه matplotLib هست. matplotlib.org

با استفاده از کدهای زیر می‌توانیم این کتابخانه را نصب کنیم:

‌pip install matplotlib!
import matplotlib.pyplot as plt
matplotlib inline%

خط سوم را به این دلیل می‌نویسیم تا نمودارها در خود ژوپیتر نوت‌بوک نمایش داده شوند

برای مثال می‌خواهیم نمودار توان دوم وردی را ترسیم کنیم:

وب اسکرپینگ:

دقیقه 45 +

کتابخانه‌های متعددی برای مبحث وب اسکرپینگ داریم که با دستورات زیر قابل نصب هستند:

!pip install yfinance!
!pip install pandas!
!pip install request!
!pip install bs4!
!pip install plotly!

منابع:

1- دوره آموزش دیتا ساینس – لینک: یوتیوب خانوم مونا حاتمی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.