隨著Python的進(jìn)一步發(fā)展,越來(lái)越多的現(xiàn)成的Python的機(jī)器學(xué)習(xí)的算法已經(jīng)發(fā)布出來(lái)。為了可以更好地運(yùn)用這些機(jī)器學(xué)習(xí)的算法,我們有必要對(duì)Python有個(gè)初步的了解。以下是小編為你整理的python機(jī)器學(xué)習(xí)入門(mén)教程 ?
Python不同層級(jí)的語(yǔ)句之間間隔四個(gè)空格縮進(jìn), indentation。Python有比較嚴(yán)格的語(yǔ)法結(jié)構(gòu),需要不同層級(jí)的代碼之間相差四個(gè)空格,不然就不能編譯通過(guò)。 ?
Python中輸出到console是用print,然后接收鍵盤(pán)輸入是用raw_input(),示例name = raw_input(What's your name?);
?
寫(xiě)完程序之后,要用不同的輸入來(lái)測(cè)試寫(xiě)的程序是否正確。 ?
變量Variables,用于存儲(chǔ)后續(xù)可能用到的數(shù)據(jù) ?
數(shù)據(jù)類(lèi)型Data Type,包含數(shù)值和布爾值 ?
注釋?zhuān)?dāng)行注釋用#,多行注釋"""開(kāi)始"""結(jié)束,如下圖所示 ?
基本數(shù)學(xué)運(yùn)算符,+,-,*,/ ?
指數(shù)運(yùn)算符,** ?
取余運(yùn)算符,% ?
如何選擇版本
Python 2.x 和 3.x 通常已經(jīng)內(nèi)置在現(xiàn)代 Linux 發(fā)行版中,你可以立刻使用它。你可以終端模擬器中輸入 "python" 或 "python3"來(lái)進(jìn)入 Python shell, 并輸入 "quit()" 退出。 ?
如果你希望在鍵入 "python" 時(shí)使用 Python 3.x 而不是 2.x,你可以像下面一樣更改對(duì)應(yīng)的符號(hào)鏈接: ?
順便一提,有一點(diǎn)需要注意:盡管 Python 2.x 仍舊被使用,但它并不會(huì)被積極維護(hù)。因此,你可能要考慮像上面指示的那樣來(lái)切換到 3.x。2.x 和 3.x 的語(yǔ)法有一些不同,我們會(huì)在這個(gè)系列文章中使用后者。 ?
另一個(gè)在 Linux 中使用 Python 的方法是通過(guò) IDLE (Python 集成開(kāi)發(fā)環(huán)境),這是一個(gè)為編寫(xiě) Python 代碼而生的圖形用戶界面。在安裝它之前,你*查看一下適用于你的 Linux 發(fā)行版的 IDLE 可用版本。 ?
然后,你可以像下面一樣安裝它: ?
$ sudo aptitude install idle-python3.2 ?
安裝成功后,你會(huì)看到 IDLE 的運(yùn)行畫(huà)面。它很像 Python shell,但是你可以用它做更多 Python shell 做不了的事。 ?
集合的與操作
我們可以看到集合輸出的效果會(huì)有一個(gè)set表示。 ?
aaa = [1,2,3]bbb = [3,4,5,6]a_a = set(aaa)b_b = set(bbb) ?
集合中并集的表示: ?
k = a_a | b_b ?
print k
?
使用一個(gè)| 線表示 ,求出2個(gè)數(shù)的并集。 ?
vip = a_a.union(b_b) #并集print vip ?
集合中交集的表示 使用 ^ 表示求交集 ?
k = a_a ^ b_b #交集合 ?
print (a_a.intersection(b_b)) # 求交!!!! ?
集合中求出不同項(xiàng)目的結(jié)果 ?
print (a_a.difference(b_b)) ?
需要單獨(dú)說(shuō)明的是求的是自己的和他人的不同,不是兩者一起的不同 ?
python有什么特點(diǎn)
下載安裝:從python官網(wǎng)下載開(kāi)發(fā)和運(yùn)行環(huán)境程序。本例下載python-3.3.3.amd64的安裝包,并安裝。 ?
開(kāi)發(fā)工具:window系統(tǒng)中,python有多種開(kāi)發(fā)工具,比如,一、直接在cmd命令窗口執(zhí)行,但此種僅能單條語(yǔ)句執(zhí)行,不能運(yùn)行完整的程序。二、python自帶的集成開(kāi)發(fā)環(huán)境,可通過(guò)開(kāi)始——所有程序——python3.3——IDLE(Python GUI)啟動(dòng)。三、其他集成開(kāi)發(fā)環(huán)境,如PythonWin等,有編輯和調(diào)試能力,還實(shí)現(xiàn)了MFC類(lèi)庫(kù)存的包裝。 ?
本例中,使用python自帶的開(kāi)發(fā)環(huán)境。File—New File,新建py文檔,編寫(xiě)程序,保存。Run——Run module,可得到運(yùn)行結(jié)果。 ?
封裝性:可以把屬性、方法結(jié)合在一起,不可以直接訪問(wèn)對(duì)象的屬性,僅能通過(guò)接口與對(duì)象發(fā)生聯(lián)系。以下把方法和屬性封裝成了一個(gè)類(lèi)。 ?
構(gòu)造器:python有3種類(lèi)型的構(gòu)造器,且一個(gè)類(lèi)中僅可以定義一個(gè)構(gòu)造器,若多個(gè),則以*為準(zhǔn)。1.若不聲明,則默認(rèn)為一個(gè)沒(méi)有任何操作的特殊的__init__方法,__init__(self),此時(shí)可通過(guò)obj = my_class()聲明實(shí)例。 2.自聲明__init__構(gòu)造器,會(huì)覆蓋默認(rèn)的,且可以更新類(lèi)的數(shù)據(jù)屬性。3.構(gòu)造器方法__new__(),用于不可變內(nèi)置類(lèi)型派生,不能通過(guò)實(shí)例訪問(wèn)屬性,僅能通過(guò)類(lèi)訪問(wèn)。 ?
繼承性:python支持多繼承,且子類(lèi)繼承了父類(lèi)的方法和屬性。若子類(lèi)中有和父類(lèi)相同名稱(chēng)的方法,則子類(lèi)會(huì)覆蓋(Override)父類(lèi)方法。父類(lèi)方法依舊可以訪問(wèn)。 ?
數(shù)據(jù)結(jié)構(gòu):有豐富的數(shù)據(jù)結(jié)構(gòu),例如列表、字典、集合等。本例簡(jiǎn)單介紹字典的使用。字典是鍵值對(duì)的無(wú)序集合,是可變對(duì)象。鍵在字典中是*的且必須是不可變對(duì)象。值可以是可變對(duì)象或不可變對(duì)象。以下例子對(duì)python字典的定義、訪問(wèn)、更新等的操作。 ?
文件的讀寫(xiě):python系統(tǒng)提供open()函數(shù)建立文件對(duì)象,并打開(kāi)要讀寫(xiě)的文件??蓪?duì)文件進(jìn)行讀,寫(xiě),若不需要時(shí),需關(guān)閉文件,釋放系統(tǒng)資源。