Python深度學習2:Python基礎語法介紹

前言

上一篇為大家介紹Google Colab平台及基本操作,本篇會為大家介紹深度學習基本使用的幾個Python語法,讓大家在看深度學習程式碼時,能夠比較清楚知道在做什麼。

 

► Python介紹

Python是一種易於學習、功能強大、直譯式並且物件導向的程式語言(由Guido van Rossum創造),可執行於多平台,屬於通用型程式語言,Python 有幾項特點:

  1. 語法簡潔:

C、Java及Android等語言,需要經過存檔、編譯及執行等三步驟,才能夠將你寫的程式碼執行運作,而Python不必存檔及編譯,寫完程式碼就可以直接執行,而且只需要輸入print(“Hello! World”),就可以直接打印Hello! World,去除函示使用大括號({})的功能,以冒號(:)及換行table或四個空白替代大括號。

  1. 功能強大:

Python可以用在深度學習、機器學習、網頁設計、手機 App 撰寫、遊戲程式設計、自動化控制、生物醫學、大數據…等領域,Python可以說是「萬用語言」。其他工程師撰寫好用 Python 程式打包成Library,允許你進行安裝使用﹐可以省下非常多的時間。

  1. 跨平台:

Python支援各種主要的作業系統。

 

Python擁有完整的資料分析套件,常用的如下:

1.統計科學計算:Numpy、Scipy、Statsmodels。
2.結構化資料處理與分析:Pandas。
3.資料探索編輯器:Jupyter Notebook。
4.深度學習:TensorFlow、Pytorch。
5.大數據處理:PySpark。
6.機器學習:Scikit-Learn。

 

► Python基礎語法

輸出

Python的輸出指令就是print,只需要輸入print(‘Hello Word’),直接執行就可以看到輸出結果Hello Word被打印出。

 

變數

Python常見的基本變數有:int (整數)、float (浮點數)、str (字串)。不像其他語言需要先定義變數型態,在python的世界裡,會依照出史哲決定變數型態,常常忘記自己設定的變數型態可以使用type(變數) 這個指令做查看。
 

數學運算

運算子

功能

x + y

X加Y

x - y

X減Y

x * y

X乘Y

x / y

X除以Y

x // y

X除以Y,只取整數解

x % y

求X除以Y的餘數

x ** y

X的Y次方

 

字串(String

創建字串使用單引號或雙引號表示,Python編程風格,每行不超過80字元,註解或字串長度不超過每行72字元,如果超過長度需使用\作為換行符號。

a = ‘1234567\
89012345’
print(a)​
輸出結果為:123456789012345
 
以上方式就可以避免超過長度的問題。
字串索引,字串像是Array可以取出內部元素,例如 s = ‘Hello’ , s[0], s[1],別取出地0個元素H及第1個元素e,當然也可以使用範圍取的方式:
s = ‘Hello’
s[1:] 取得從第一個索引之後的全部元素
s[:3] 取得從0到索引為第3個元素
s[:] 取得所有元素
s[::1] 類似For迴圈,從0開始,每次遞增1
s[::2] 類似For迴圈,從0開始,每次遞增2
s[::-1] 類似For迴圈,從0開始,每次遞減1

 

串列(List

Python 的 List 比較接近於 Java 的 ArrayList的使用,但是Python的List內可以放不同類型的物件,以中括號表示:
my_list=[1,2,3]
my_list=['A string',23,100.232,'o']​

將字串轉為List:

 hello=list('Hello world')

print(hello)
['H','e','l','l','o',' ','w','o','r','l','d’]

 

字典(Dictionary

其他語言也有相同功能 ,Java(HashMap)、C++(HashMap)、C#(Dictionary)及Swift(Dictionary)...等等的語言,主要為{key, value},key為唯一值,Dictionary以大括號表示:
dic={'a':100, 'b':"yes", 'c':0.98}

 

元祖(Tuples

Tuple跟List很像,但不一樣的地方在於Tuple內的值無法被修改,建立完成後就不可被更動,Tuple有幾個優點,第一個為佔用空間比List少,第二個為可當作Dictionary的key,第三個為當做函式引數,Tuple以小括號表示:
tuple = (1,2,3)​

流程控制(if...else)

功能與其他程式語言一樣,但是大括號被移除,使用tab或空白區隔執行區塊,規定使用4個空白或1個tab (PEP 8 -- Style Guide for Python code),而Google colab則使用2個空白或1個tab:
if True:
print('It was true!')​

輸出結果為:It was true!

 

For迴圈

功能與其他程式語言一樣,只是架構上做一些調整,範例如下:

a = [1,2,3,4,5,6,7,8,9,10]
b = ""
for num in a:
b = b + str(num)
print(b)​
輸出結果為:12345678910

 

函式

將重複用到的程式碼整理出一個函示,可以讓不同情境下呼叫,Python定義函式的語句使用def (Defining a function) ,範例如下:

def addNum(a, b):
return a+b
print(addNum(5, 6))​
輸出結果為:11

 

以上為大概的Python基礎語法介紹,有興趣的來這裡 Python 說明文件內容

 

► Numpy套件基本介紹

NumPy(Numerical Python) 是Python 語言的一個擴展函式庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

NumPy 通常與SciPy(Scientific Python)和Matplotlib(繪圖庫)一起使用,有助於通過Python 學習數據科學或者機器學習。

na=np.array([1,2,3,4,5]) #一維陣列,跟一般List操作類似
na=np.array([[1,2,3,4,5],[6,7,8,9,10]]) #二維陣列

SciPy 包含的模塊有最優化、線性代數、積分、插值、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算,只需要做安裝引用就可以實現這些數學運算。

Matplotlib 是Python 編程語言及其數值數學擴展,可視化操作界面,操作如下:

import numpy as np
import matplotlib.pyplot as plt

x=np.arange(1,7)
y=[0.2,0.1,0.1,0.2,0.1,0.3]
cdf=np.cumsum(y)

plt.plot(x,y, marker="o",label="AA")
plt.plot(x,cdf,marker="o",label="BB")
plt.xlim(0,7)
plt.ylim(0,1.5)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Test")
plt.legend()
plt.show()




小結

透過以上講解,因該已經對於Python有初步的了解,當看Python程式碼時也可以看得懂,也可以嘗試自己寫一個簡單的Python應用來玩玩,本篇博文到這裡,期待下一篇博文吧!

 

參考資料

NumPy 教程 
python基本語法介紹 
Python 說明文件內容 

 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論