DL1. python入门
1.?? ?深度學(xué)習(xí)及其學(xué)習(xí)以及數(shù)據(jù)科學(xué)領(lǐng)域,應(yīng)用較多,憑借NumPy, SciPy等優(yōu)秀的數(shù)據(jù)計(jì)算和統(tǒng)計(jì)分析庫,應(yīng)用較多,
2.?? ?Python的版本:分為2.x和3.x, 3.x寫的代碼2.x無法執(zhí)行。
3.?? ?深度學(xué)習(xí)涉及的外部庫:
a)?? ?NumPy庫:用于數(shù)值計(jì)算的庫,提供數(shù)學(xué)算法和矩陣的操作接口。
b)?? ?MatPlotlib庫:繪制圖形的庫。
4.?? ?Anaconda 3.x內(nèi)部除了python3.x的環(huán)境以外,還集成了含上述庫在內(nèi)的必要庫。
-------------------1.3 python解釋器---------·------------------
1.?? ?Cmd中輸入 python –version 可以查詢python的版本。
2.?? ?Cmd python 可以啟動python解釋器,解釋器與matlab的界面有點(diǎn)像
3.?? ?算數(shù)運(yùn)算:
a)?? ?加減略; 乘法(*) 除法(/) 乘方(**)
4.?? ?數(shù)據(jù)類型:
a)?? ?三種:整數(shù), 小數(shù), 字符串。 ?Int ?float ?“hello”
b)?? ?用type(val)可以查看val的類型
5.?? ?變量:命名規(guī)范與C語言類似,
a)?? ?動態(tài)變量類型,即不需要顯式的指定某變量的類型
b)?? ?類型自動轉(zhuǎn)換:小數(shù)與整數(shù),結(jié)果為小數(shù)
c)?? ?舉例:x=10; x=x+0.1; ?type(x) = “float”
6.?? ?打印值與注釋:
a)?? ?打印使用print(val),不同于C語言,沒有格式化的打印
b)?? ?#為注釋的意思,放在前面
7.?? ?列表:(類似數(shù)組)
a)?? ?定義:a= [1,2,3,4,5]?
b)?? ?打印全部:print(a) ? 打印某元素print(a[4])
c)?? ?獲取長度:len(a)
d)?? ?訪問謀個(gè)元素:a[3] ?注意下標(biāo)從0開始
e)?? ?訪問某一子表:
i.?? ?下標(biāo)為0-2的元素: a[0:2]
ii.?? ?1-最后 的元素: a[1:]
iii.?? ?索引為3之前的元素: a[:3]
iv.?? ?最后一個(gè)元素的前一個(gè)元素之前的所有數(shù)據(jù)a[:-1]
v.?? ?最后一個(gè)元素到前兩個(gè)元素之前的所有數(shù)據(jù)a[:-2]
vi.?? ?X:y [x,y) ?即左邊是包含,右邊不包含
vii.?? ?注意y可以是-1,即最后一個(gè)元素,-2代表倒數(shù)第二個(gè)元素
viii.?? ?凡是【】形式的訪問,右側(cè)都是不包含的
8.?? ?字典:以鍵值對的形式存儲數(shù)據(jù),類似《新華字典》
a)?? ?定義:me={key1:val1, key2:val2} 即為建立聯(lián)系,對于key和val的類型均沒有限制,同一本字典的不同key類型可以不同。
b)?? ?添加: me[newkey] = newval
c)?? ?訪問: me[key] ?即訪問key所對應(yīng)的val
9.?? ?布爾類型:類型“bool” ? 可取值【True False】(首字母必須大寫)
a)?? ?Type() = bool
b)?? ?運(yùn)算符:and ?or ?not ? ? ? A and b; ? a or b ? ?not c?
10.?? ?If語句:
if a ? ?(a可以是int ?float ?bool類型)
print(“111”) ? ? 前面可以是四個(gè)空格
print(“111”) ? ? 前面也可以是一個(gè)tab
#python中,四個(gè)空格或一個(gè)tab表示縮進(jìn),縮進(jìn)不僅代表格式,還代表所屬關(guān)系
Else:
? ? Print(“222”)
? ? Print(“333”)
#此行前面不加空格,即代表else結(jié)束,即if結(jié)束。
11.?? ?For循環(huán)語句:用于循環(huán)處理。
For a in [1, 3, 5]: ? ?#即 for val ?in [a,b,c]
Print(“a”) ? #注意結(jié)果為1, 3, 5
注意運(yùn)行的次數(shù)為3次,但是結(jié)果為 1 3 5?
此外需要注意的一點(diǎn)是 for in后面的可以是7節(jié)中的列表
12.?? ?函數(shù):?
def xxx(object1, pbject2):
print(“hello” + object1 + object2 + “!”) ?字符串拼接使用“+”
調(diào)用:xxx(mlw niubi)
-------------------·--·-python中類的定義以及實(shí)例化-------·-----------
1.?? ?Python腳本文件以 .py 為后綴。在其中書寫一系列語句,然后在cmd界面(不需要進(jìn)入python解釋器模式)直接python xx.py 即可運(yùn)行該py文件。
2.?? ?類:相當(dāng)于結(jié)構(gòu)體。之前我們了解的類(int str等通過type獲取的)是pytjon默認(rèn)集成的,我們可以自己定義類。類的定義如下
class mlw: ? ? //類名稱 mlw ? ? ? ? ? ? ? ?
? ? def __init__(self, arg1, arg2): ?//構(gòu)造函數(shù),注意其名字一定為__init__, 參數(shù)隨意
? ? ? ? self.arg1 = arg1
? ? ? ? self.arg2 = arg2
? ? ? ? ? ? print("Initialized!")
? ? ? ? def func1(self): ? //定義其他功能函數(shù)
? ? ? ? def func2(self): ? //定義其他功能函數(shù)
3.?? ?類的實(shí)例化: mlw val1(arg1, arg2); ? //定義名為val1的mlw類變量。同時(shí)傳參給構(gòu)造函數(shù),注意實(shí)參的類型和數(shù)量必須符合構(gòu)造函數(shù)的要求,不然失敗。
4.?? ?類的成員以及函數(shù)的引用: ?
a)?? ?類的成員的引用: val1.arg1 ? ?val1.arg2 ??
b)?? ?類的成員函數(shù)的使用: val1.func1() ? ?val1.func2() 注意后面必須加括號。
----------·--------·------------------------
-----------------·--------NumPy--------------·--------------
1.?? ?用于數(shù)組和矩陣的運(yùn)算,NumPy中的數(shù)組類(numpy.array)中提供了很多方法,
2.?? ?導(dǎo)入:NumPy是外部庫,所謂外部就是不包含在python的默認(rèn)庫中,需要導(dǎo)入:對話模式下執(zhí)行:import numpy as np 即可完成導(dǎo)入。
3.?? ?import libxxx as xxx :導(dǎo)入libxxx庫,然后連接到符號xxx。后續(xù)通過xxx即可調(diào)用該庫。
具體使用:
1.?? ?生成NumPy數(shù)組:Resault = np.array(val) ?
a)?? ?Val:入?yún)?#xff0c;是python列表類型。
b)?? ?Resault出參,是nump.ndarray 類型的數(shù)據(jù)。
2.?? ?NumPy之間的算數(shù)運(yùn)算:運(yùn)算的需要是同維數(shù),加減乘除即對應(yīng)的元素加減乘除。Numpy數(shù)組也可與標(biāo)量進(jìn)行運(yùn)算,就是對每個(gè)成員與該標(biāo)量進(jìn)行運(yùn)算。
3.?? ?NumPy的N維數(shù)組:即矩陣
a)?? ?定義: val = np.array(【[1,2], [3,4], [5,6]】) []內(nèi)的為一行
b)?? ?獲取維數(shù):該類中集成了shape函數(shù),用于返回維數(shù)。
c)?? ?獲取矩陣元素的類型:該類中集成了dtype函數(shù),用于返回元素的類型
d)?? ?兩個(gè)維數(shù)相同的矩陣可以進(jìn)行運(yùn)算,注意乘法是點(diǎn)乘,即對應(yīng)元素計(jì)算。
e)?? ?矩陣可以與標(biāo)量進(jìn)行運(yùn)算,方法是遍歷每個(gè)元素計(jì)算。基于廣播實(shí)現(xiàn)的。
f)?? ?一維數(shù)組稱為向量 ?二維數(shù)組稱為矩陣,三維及以上的稱為張量。
4.?? ?廣播:NumPy中不同維數(shù)的數(shù)組之間可以運(yùn)算,比如矩陣和標(biāo)量之間,因?yàn)镹umPy有自動補(bǔ)全的機(jī)制,用于解決不同維數(shù)之間矩陣計(jì)算的問題,關(guān)于自動補(bǔ)全的方法不詳細(xì)介紹,
5.?? ?訪問矩陣元素:元素索引從0開始(與python通用的列表相同)
a)?? ?訪問某行:val[xx] ?訪問xx行的所有元素 ,注意xx也是從0開始的。
b)?? ?訪問某個(gè)元素: val[xx][yy] ?訪問xx行yy列的元素
c)?? ?Np.flatten函數(shù)用于將np.array矩陣中的元素轉(zhuǎn)換為數(shù)組。
i.?? ?Val = val.flatten() ?val仍然是numpy.ndarray類型的。注意按行存儲。
d)?? ?注意matlab是按列存儲的。
e)?? ?Val【np.array([0, 2, 4])】獲取索引為0 2 4 的元素
f)?? ?數(shù)組的布爾型運(yùn)算:對數(shù)組進(jìn)行布爾型運(yùn)算,會得到一個(gè)true false的數(shù)組 val>3
g)?? ?Val【val>3】 打印出所有大于3的元素的值。
對于NumPy的使用,以實(shí)際的訓(xùn)練為主。
幾個(gè)方法的介紹:
1.?? ?Np.arange(min, max, step) 類似于matalab定義一個(gè)向量
2.?? ?Np中集成了sin ?cos等函數(shù): y=np.sin(x) ?//其中x是自己生成的向量。
------------·------------matplotlib庫--------·-·-----------
1.?? ?外部庫,需要導(dǎo)入:import ?matplotlib.pyplot ?as plt
2.?? ?顯示圖形示例:?
a)?? ?X=np.arange(min, max, step)
b)?? ?Y=np.sin(x)
c)?? ?Plt.plot(x,y) ?調(diào)用plt類中的繪制函數(shù)
d)?? ?Plt.show() ? 調(diào)用plt類中的顯示函數(shù)
3.?? ?Plt.plot(x, y, label=”sin”, linestyle=”-”) ? ?其中l(wèi)abel是圖形的標(biāo)示符,linestyle是曲線的類型。
4.?? ?Plt.xlabel(“str”) ? x軸的標(biāo)記 ? ? ?plt.ylabel(“str”) y軸的標(biāo)記
5.?? ?Plt.title(“title”) ? ?圖像的標(biāo)題
6.?? ?Plt.legend() ? ? ?plt.show() ?
7.?? ?顯示圖像:略。
總結(jié)
以上是生活随笔為你收集整理的DL1. python入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 即刻金服车牌币火爆上线
- 下一篇: 最终,还是没能成为吹牛逼的资本!(二)