目录
► 前言
上一篇为大家介绍Google Colab平台及基本操作,本篇会为大家介绍深度学习基本使用的几个Python语法,让大家在看深度学习程式码时,能够比较清楚知道在做什麽。
► Python介绍
Python是一种易于学习、功能强大、直译式并且物件导向的程式语言(由Guido van Rossum创造),可执行于多平台,属于通用型程式语言,Python 有几项特点:
语法简洁:
C、Java及Android等语言,需要经过存档、编译及执行等三步骤,才能够将你写的程式码执行运作,而Python不必存档及编译,写完程式码就可以直接执行,而且只需要输入print(“Hello! World”),就可以直接打印Hello! World,去除函示使用大括号({})的功能,以冒号(:)及换行table或四个空白替代大括号。
功能强大:
Python可以用在深度学习、机器学习、网页设计、手机 App 撰写、游戏程式设计、自动化控制、生物医学、大数据…等领域,Python可以说是“万用语言”。其他工程师撰写好用 Python 程式打包成Library,允许你进行安装使用﹐可以省下非常多的时间。
跨平台:
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基础语法介绍。
► 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应用来玩玩,本篇博客到这裡,期待下一篇博客吧!