Python最近幾年發(fā)展的非常迅速,尤其是2018年,隨著人工智能概念的興起,python的關(guān)注度也是越來越高,對于從事IT行業(yè)的人來說,對python語言并不陌生,但是其他行業(yè)的人可能對python了解的不多,或者聽都沒聽過,今日小編就從多個角度來詳細(xì)介紹下python這門編程語言,告訴大家python是什么?python可以用來干什么?同時如果你想學(xué)習(xí)Python的話,也可以根據(jù)文章內(nèi)提到的學(xué)習(xí)資源,來自學(xué)python!
1989年的圣誕節(jié),Guido開始編寫Python語言的編譯器。Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創(chuàng)造一
1991年,第一個Python編譯器誕生。它是用C語言實(shí)現(xiàn)的,并能夠調(diào)用C語言的庫文件。從一出生,Python已經(jīng)具有了:類,函數(shù),異常處理,包含表和詞典在內(nèi)的核心數(shù)據(jù)類型,以及模塊為基礎(chǔ)的拓
Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
2014年11月,Python2.7將在2020年停止支持的消息被發(fā)布,并且不會在發(fā)布2.8版本,建議用戶盡可能的遷移到3.4+ Python最初發(fā)布時,在設(shè)計上有一些缺陷,比如Unicode標(biāo)準(zhǔn)晚于Python出
現(xiàn),所以一直以來對Unicode的支持并不完全,而ASCII編碼支持的字符有限。例: 對中文支持不好Python3相對Python早期的版本是一個較大的升級,Py3在設(shè)計的時候沒有考慮向下兼容,所以很多早期
版本的Python的程序無法再Py3上運(yùn)行。為了照顧早期的版本,推出過渡版本2.6——基本使用了Python 2.x的語法和庫,同時考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語法與函數(shù)。2010
年繼續(xù)推出了兼容版本2.7,大量Python3的特性被反向遷移到了Python2.7,2.7比2.6進(jìn)步非常多,同時擁有大量3中的特性和庫,并且照顧了原有的Python開發(fā)人群。
至2027年,Python 已經(jīng)推出了5.0版本,開發(fā)效率極高、運(yùn)行速度飛快,成為全球最受程序員歡迎的開發(fā)語言!全球超過50%的 IT 系統(tǒng)是基于 Python 開發(fā)的!
這一兩年 Python 在業(yè)內(nèi)大火, 我一直思考原因是為什么,除了云計算幫 Python 帶了一波節(jié)奏外,還有沒有其它原因呢?必然有,我認(rèn)為還有一個主要原因就是近幾點(diǎn)互聯(lián)網(wǎng)創(chuàng)業(yè)熱情高漲,千千萬萬程序員聽了各種創(chuàng)業(yè)雞湯,辭掉了大公司安穩(wěn)工作玩創(chuàng)業(yè),14,15年的中關(guān)村創(chuàng)業(yè)大街那叫一個熱鬧,總理都去過好幾次,當(dāng)時大家都急著要把東西快速開發(fā)出來去拿融資,那時的投資人腦子也是熱呀,大批大批的錢投給各創(chuàng)業(yè)公司,供他們各種現(xiàn)金補(bǔ)貼搶用戶。 時間就是金錢,大家恨不得今天剛有了 idea,明天產(chǎn)品就能上線,產(chǎn)品晚上線一個月,可能戰(zhàn)爭就跟你沒關(guān)系了。 因此,一門開發(fā)效率極高的語言就此進(jìn)入開發(fā)者眼簾,開發(fā)者們因?yàn)楠q如神助,開發(fā)效率不知道比 C, Java 高到哪里去了,眾多創(chuàng)業(yè)公司首選 Python 做為開發(fā)語言,雖然那些創(chuàng)業(yè)公司大多都失敗了,但是催生起了Python 在國內(nèi)大熱的前戲。
顯然 Python 并不是一門快語言,慢也是被很多程序員詬病Python 的主要原因,但最近幾年 PyPy 解釋器在不斷的提高著 Python 的運(yùn)行速度 ,通過 PyPy 運(yùn)行的程序,在某些場景下速度直接逼近 C 語言,相信再過幾年,Python 的運(yùn)行速度將不再是問題。另外,由于近些 CPU 處理速度的快速發(fā)展,編程語言本身的快慢在大多數(shù)業(yè)務(wù)場景下已不再被做為主要考量(除了對響應(yīng)速度極為敏感的業(yè)務(wù),如搜素)。
這是導(dǎo)致 Python 大火的另一個主要原因之一,Python 的標(biāo)準(zhǔn)庫和第三方庫強(qiáng)大到你無法想象,無論你想從事任何方向的技術(shù)編程,你幾乎都能找到相應(yīng)的庫支持。
WEB開發(fā)——最火的 Python web 框架 Django, 支持異步高并發(fā)的 Tornado 框架,短小精悍的 flask,bottle, Django 官方的標(biāo)語把 Django 定義為 the framework for perfectionist with deadlines
網(wǎng)絡(luò)編程——支持高并發(fā)的 Twisted 網(wǎng)絡(luò)框架, py3 引入的 asyncio 使異步編程變的非常簡單
云計算——目前最火最知名的云計算框架就是 OpenStack, Python 現(xiàn)在的火,很大一部分就是因?yàn)樵朴嬎?/div>
人工智能——誰會成為 AI 和大數(shù)據(jù)時代的第一開發(fā)語言?這本已是一個不需要爭論的問題。如果說三年前,Matlab、Scala、R、Java 和 Python 還各有機(jī)會,局面尚且不清楚,那么三年之后,趨勢已經(jīng)非常明確了,特別是前兩天 Facebook 開源了 PyTorch 之后,Python 作為 AI 時代頭牌語言的位置基本確立,未來的懸念僅僅是誰能坐穩(wěn)第二把交椅。
自動化運(yùn)維——問問中國的每個運(yùn)維人員,運(yùn)維人員必須會的語言是什么?10個人相信會給你一個相同的答案,它的名字叫Python
金融分析——我個人之前在金融行業(yè),10年的時候,我們公司寫的好多分析程序、高頻交易軟件就是用的 Python,到目前, Python 是金融分析、量化交易領(lǐng)域里用的最多的語言
科學(xué)運(yùn)算—— 你知道么,97年開始,NASA 就在大量使用 Python 在進(jìn)行各種復(fù)雜的科學(xué)運(yùn)算,隨著 NumPy, SciPy, Matplotlib, Enthought librarys 等眾多程序庫的開發(fā),使的 Python 越來越適合于做科學(xué)計算、繪制高質(zhì)量的 2D 和 3D 圖像。和科學(xué)計算領(lǐng)域最流行的商業(yè)軟件 Matlab 相比,Python 是一門通用的程序設(shè)計語言,比 Matlab 所采用的腳本語言的應(yīng)用范圍更廣泛
游戲開發(fā)——在網(wǎng)絡(luò)游戲開發(fā)中 Python 也有很多應(yīng)用。相比 Lua or C++,Python 比 Lua 有更高階的抽象能力,可以用更少的代碼描述游戲業(yè)務(wù)邏輯,與 Lua 相比,Python 更適合作為一種 Host 語言,即程序的入口點(diǎn)是在 Python 那一端會比較好,然后用 C/C++ 在非常必要的時候?qū)懸恍U(kuò)展。Python 非常適合編寫 1 萬行以上的項(xiàng)目,而且能夠很好地把網(wǎng)游項(xiàng)目的規(guī)模控制在 10 萬行代碼以內(nèi)。另外據(jù)我所知,知名的游戲<文明>就是用Python寫的
列舉這么多之后,你會發(fā)現(xiàn),Python 幾乎在上述每個領(lǐng)域都做的非常優(yōu)秀,這是一門真正意義上的全棧語言,即使目前世界上使用最廣泛的 Java 語言,在很多方面與 Python相比也遜色很多!我目前還看不到有哪門語言,能同時在在如此多的領(lǐng)域能做出這些成績。
最后我在做幾點(diǎn)與Python相關(guān)的預(yù)測:
5年之內(nèi),Python 會取代 PHP,成為最受歡迎的 WEB 開發(fā)語言
10年內(nèi),Python 的使用量將趨近甚至超過Java
10年內(nèi),主流的人工智能技術(shù)都是基于 Python 開發(fā)
Python 應(yīng)用率已經(jīng)取得第一的領(lǐng)域有:云計算、爬蟲、自動化運(yùn)維、金融分析
五、Python可以用來干什么?
在我看來,基本上可以不負(fù)責(zé)任地認(rèn)為,Python 可以做任何事情。無論是從入門級選手到專業(yè)級選手都在做的爬蟲,還是Web 程序開發(fā)、桌面程序開發(fā)還是科學(xué)計算、圖像處理,Python都可以勝任。
Python為我們提供了非常完善的基礎(chǔ)代碼庫,覆蓋了網(wǎng)絡(luò)、文件、GUI、數(shù)據(jù)庫、文本等大量內(nèi)容,被形象地稱作“內(nèi)置電池(Batteries included)”。用Python開發(fā),許多功能不必從零編寫,直接使用現(xiàn)成的即可。
除了內(nèi)置的庫外,Python還有大量的第三方庫,也就是別人開發(fā)的,供你直接使用的東西。當(dāng)然,如果你開發(fā)的代碼通過很好的封裝,也可以作為第三方庫給別人使用。
許多大型網(wǎng)站就是用Python開發(fā)的,例如YouTube、Instagram,還有國內(nèi)的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美國航空航天局)都大量地使用Python。
龜叔給Python的定位是“優(yōu)雅”、“明確”、“簡單”,所以Python程序看上去總是簡單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復(fù)雜的程序。
總的來說,Python的哲學(xué)就是簡單優(yōu)雅,盡量寫容易看明白的代碼,盡量寫少的代碼。如果一個資深程序員向你炫耀他寫的晦澀難懂、動不動就幾萬行的代碼,你可以盡情地嘲笑他。
六、Python為什么這么火?
Python 是一門更注重可讀性和效率的語言,尤其是相較于 Java,PHP 以及 C++ 這樣的語言,它的這兩個優(yōu)勢讓其在開發(fā)者中大受歡迎,同時在運(yùn)維領(lǐng)域也被大量運(yùn)用到自動化運(yùn)維場景中。以下是Python的五大優(yōu)勢:
1、Python 易于學(xué)習(xí);
2、用少量的代碼構(gòu)建出很多功能;
3、Python 擁有最成熟的程序包資源庫之一;
4、Python 緊挨著 R 語言,都是現(xiàn)代數(shù)據(jù)科學(xué)中最常被使用的語言;
5、Python 是跨平臺且開源的。
Python的各種優(yōu)勢領(lǐng)各大企業(yè)公司開始使用Python開發(fā),這就造成了Python開發(fā)人才的緊缺,相應(yīng)的Python開發(fā)人員的薪資待遇也在增高。據(jù)統(tǒng)計,目前Python開發(fā)人員的薪資待遇為10K以上,這樣的誘惑很難讓人拒絕。
七、Python和人工智能的關(guān)系?
我們經(jīng)常聽到“Python”與“人工智能”這兩個詞,也很容易混淆這兩個詞,那么Python和人工智能有什么關(guān)系呢?
首先我們先來說說人工智能
人工智能是計算機(jī)科學(xué)的一個分支,它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器,該領(lǐng)域的研究包括機(jī)器人、語言識別、圖像識別、自然語言處理和專家系統(tǒng)等。
簡單來說,人工智能是一種未來性的技術(shù)。
再來說說Python
Python是一門計算機(jī)程序語言,目前人工智能科學(xué)領(lǐng)域應(yīng)用廣泛,應(yīng)用廣泛就表明各種庫,各種相關(guān)聯(lián)的框架都是以Python作為主要語言開發(fā)出來的。
谷歌的TensorFlow大部分代碼都是Python,其他語言一般只有幾千行 。如果講開發(fā)效率,用Python,誰會用Java這種高不成低不就的語言搞人工智能呢?
Python雖然是腳本語言,但是因?yàn)槿菀讓W(xué),迅速成為科學(xué)家的工具,從而積累了大量的工具庫、架構(gòu),人工智能涉及大量的數(shù)據(jù)計算,用Python是很自然的,簡單高效。
Python有非常多優(yōu)秀的深度學(xué)習(xí)庫可用,現(xiàn)在大部分深度學(xué)習(xí)框架都支持Python,不用Python用誰?
八、Python的優(yōu)勢和劣勢
Python的定位是“優(yōu)雅”、“明確”、“簡單”,所以Python程序看上去總是簡單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復(fù)雜的程序。
python語言的優(yōu)點(diǎn)
⑴作為初學(xué)python的科班出身的小白,python非常簡單,非常適合人類閱讀。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴(yán)格!Python的這種偽代碼本質(zhì)是它最大的優(yōu)點(diǎn)之一。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。
⑵易學(xué)。python雖然是用c語言寫的,但是它擯棄了c中非常復(fù)雜的指針,簡化了python的語法。
⑶Python是FLOSS(自由/開放源碼軟件)之一。簡單地說,你可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。Python希望看到一個更加優(yōu)秀的人創(chuàng)造并經(jīng)常改進(jìn)。
⑷可移植性————由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。如果你小心地避免使用依賴于系統(tǒng)的特性,那么你的所有Python程序無需修改就可以在下述任何平臺上面運(yùn)行。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC、Symbian以及Google基于linux開發(fā)的Android平臺!
⑸在計算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機(jī)使用的機(jī)器語言并運(yùn)行。事實(shí)上,由于你不再需要擔(dān)心如何編譯程序,如何確保連接轉(zhuǎn)載正確的庫等等,所有這一切使得使用Python更加簡單。由于你只需要把你的Python程序拷貝到另外一臺計算機(jī)上,它就可以工作了,這也使得你的Python程序更加易于移植。
⑹Python既支持面向過程的函數(shù)編程也支持面向?qū)ο蟮某橄缶幊獭T诿嫦蜻^程的語言中,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在面向?qū)ο蟮恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強(qiáng)大又簡單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?/div>
⑺ 可擴(kuò)展性和可嵌入性。如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
⑻豐富的庫。Python標(biāo)準(zhǔn)庫確實(shí)很龐大。python有可定義的第三方庫可以使用。它可以幫助你處理各種工作,包括正則表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫以外,還有許多其他高質(zhì)量的庫,如wxPython、Twisted和Python圖像庫等等。
⑼ Python確實(shí)是一種十分精彩又強(qiáng)大的語言。它合理地結(jié)合了高性能與使得編寫程序簡單有趣的特色。
⑽規(guī)范的代碼。Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有極佳的可讀性。
python語言的缺點(diǎn)
很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€.py文件。(對很多用戶而言這也不算是限制)
⑴運(yùn)行速度,有速度要求的話,用C++改寫關(guān)鍵部分吧。不過對于用戶而言,機(jī)器上運(yùn)行速度是可以忽略的。因?yàn)橛脩舾靖杏X不出來這種速度的差異。
⑵既是優(yōu)點(diǎn)也是缺點(diǎn),python的開源性使得Python語言不能加密,但是目前國內(nèi)市場純粹靠編寫軟件賣給客戶的越來越少,網(wǎng)站和移動應(yīng)用不需要給客戶源代碼,所以這個問題就是問題。不過隨著時間的推移,很多國內(nèi)軟件公司,尤其是游戲公司,也開始規(guī)模使用他。
⑶ 構(gòu)架選擇太多(沒有像C#這樣的官方.net構(gòu)架,也沒有像ruby由于歷史較短,構(gòu)架開發(fā)的相對集中。Ruby on Rails 構(gòu)架開發(fā)中小型web程序天下無敵)。不過這也從另一個側(cè)面說明,python比較優(yōu)秀,吸引的人才多,項(xiàng)目也多。
九、誰適合學(xué)Python?
我們首先來看一看誰在學(xué)Python:
第一類:入行編程新手:大學(xué)剛畢業(yè)或者其他行業(yè)轉(zhuǎn)崗,想從事編程開發(fā)的工作,目前認(rèn)為Python比較火,想入行;
第二類:Linux系統(tǒng)運(yùn)維人員:Linux運(yùn)維以繁雜著稱,對人員系統(tǒng)掌握知識的能力要求非常高,那么也就需要一個編程語言能解決自動化的問題,Python開發(fā)運(yùn)維工作是首選,Python運(yùn)維工資的薪資普遍比Linux運(yùn)維人員的工資高。
第三類:做數(shù)據(jù)分析或者人工智能:不管是常見的大數(shù)據(jù)分析或者一般的金融分析、科學(xué)分析都比較大程度的應(yīng)用了數(shù)據(jù)分析,人工智能的一些常見應(yīng)用也使用了Python的一些技術(shù)。
第四類:在職程序員轉(zhuǎn)Python開發(fā):平常只關(guān)注div+css這些頁面技術(shù),很多時候其實(shí)需要與后端開發(fā)人員進(jìn)行交互的,現(xiàn)在有很多Java程序在轉(zhuǎn)到Python語言,他們都被Python代碼的優(yōu)美和開發(fā)效率所折服
第五類:其他:一些工程師以前在做很多SEO優(yōu)化的時候,苦于不會編程,一些程序上面的問題,得不到解決,只能做做簡單的頁面優(yōu)化。 現(xiàn)在學(xué)會Python之后,可以編寫一些查詢收錄,排名,自動生成網(wǎng)絡(luò)地圖的程序,解決棘手的SEO問題。
十、學(xué)習(xí)Python可以從事的工作?
Python崗位
Python崗位有哪些呢?主要的崗位有這些:
Python全棧開發(fā)工程師(10k-20K)
Python運(yùn)維開發(fā)工程師(15k-20K)
Python高級開發(fā)工程師(15k-30K)
Python大數(shù)據(jù)工程師(15K-30K)
Python機(jī)器學(xué)習(xí)工程師(15k-30K)
Python架構(gòu)師(20k-40k)
Python 可以做什么,這是一個有趣的問題。
從入門級選手到專業(yè)級選手都在做的——爬蟲
用 Python 寫爬蟲的教程網(wǎng)上一抓一大把,據(jù)我所知很多初學(xué) Python 的人都是使用它編寫爬蟲程序。小到抓取一個小黃圖網(wǎng)站,大到一個互聯(lián)網(wǎng)公司的商業(yè)應(yīng)用。通過 Python 入門爬蟲比較簡單易學(xué),不需要在一開始掌握太多太基礎(chǔ)太底層的知識就可以很快上手,而且很快可以做出成果,非常適合小白一開始想做出點(diǎn)看得見的東西的成就感。
除了入門,爬蟲也被廣泛應(yīng)用到一些需要數(shù)據(jù)的公司、平臺和組織,通過抓取互聯(lián)網(wǎng)上的公開數(shù)據(jù),來實(shí)現(xiàn)一些商業(yè)價值是非常常見的做法。當(dāng)然這些選手的爬蟲就要厲害的多了,需要處理包括路由、存儲、分布式計算等很多問題,與小白的抓黃圖小程序,復(fù)雜度差了很多倍。
Web 程序
除了爬蟲,Python 也廣泛應(yīng)用到了 Web 端程序,比如你現(xiàn)在正在使用的知乎,主站后臺就是基于 Python 的 tornado 框架,豆瓣的后臺也是基于 Python。除了 tornado (Tornado Web Server),Python 常用的 Web 框架還有 Flask(Welcome | Flask (A Python Microframework)),Django (The Web framework for perfectionists with deadlines) 等等。通過上述框架,你可以很方便實(shí)現(xiàn)一個 Web 程序,比如我認(rèn)識的一些朋友,就通過 Python 自己編寫了自己的博客程序,包括之前的 zhihu.photo,我就是通過 Flask 實(shí)現(xiàn)的后臺(出于版權(quán)等原因,我已經(jīng)停掉了這個網(wǎng)站)。除了上述框架,你也可以嘗試自己實(shí)現(xiàn)一個 Web 框架。
桌面程序
Python 也有很多 UI 庫,你可以很方便地完成一個 GUI 程序(話說我最開始接觸編程的時候,就覺得寫 GUI 好炫酷,不過搞了好久才在 VC6 搞出一個小程序,后來又輾轉(zhuǎn) Delphi、Java等,最后接觸到 Python 的時候,我對 GUI 已經(jīng)不感興趣了)。Python 實(shí)現(xiàn) GUI 的實(shí)例也不少,包括大名鼎鼎的 Dropbox,就是 Python 實(shí)現(xiàn)的服務(wù)器端和客戶端程序。
人工智能(AI)與機(jī)器學(xué)習(xí)
人工智能是現(xiàn)在非常火的一個方向,AI熱潮讓Python語言的未來充滿了無限的潛力。現(xiàn)在釋放出來的幾個非常有影響力的AI框架,大多是Python的實(shí)現(xiàn),為什么呢?因?yàn)镻ython足夠動態(tài)、具有足夠性能,這是AI技術(shù)所需要的技術(shù)特點(diǎn)。比如基于Python的深度學(xué)習(xí)庫、深度學(xué)習(xí)方向、機(jī)器學(xué)習(xí)方向、自然語言處理方向的一些網(wǎng)站基本都是通過Python來實(shí)現(xiàn)的。
機(jī)器學(xué)習(xí),尤其是現(xiàn)在火爆的深度學(xué)習(xí),其工具框架大都提供了Python接口。Python在科學(xué)計算領(lǐng)域一直有著較好的聲譽(yù),其簡潔清晰的語法以及豐富的計算工具,深受此領(lǐng)域開發(fā)者喜愛。
早在深度學(xué)習(xí)以及Tensorflow等框架流行之前,Python中即有scikit-learn,能夠很方便地完成幾乎所有機(jī)器學(xué)習(xí)模型,從經(jīng)典數(shù)據(jù)集下載到構(gòu)建模型只需要簡單的幾行代碼。配合Pandas、matplotlib等工具,能很簡單地進(jìn)行調(diào)整。
而Tensorflow、PyTorch、MXNet、Keras等深度學(xué)習(xí)框架更是極大地拓展了機(jī)器學(xué)習(xí)的可能。使用Keras編寫一個手寫數(shù)字識別的深度學(xué)習(xí)網(wǎng)絡(luò)僅僅需要寥寥數(shù)十行代碼,即可借助底層實(shí)現(xiàn),方便地調(diào)用包括GPU在內(nèi)的大量資源完成工作。
值得一提的是,無論什么框架,Python只是作為前端描述用的語言,實(shí)際計算則是通過底層的C/C++實(shí)現(xiàn)。由于Python能很方便地引入和使用C/C++項(xiàng)目和庫,從而實(shí)現(xiàn)功能和性能上的擴(kuò)展,這樣的大規(guī)模計算中,讓開發(fā)者更關(guān)注邏輯于數(shù)據(jù)本身,而從內(nèi)存分配等繁雜工作中解放出來,是Python被廣泛應(yīng)用到機(jī)器學(xué)習(xí)領(lǐng)域的重要原因。
科學(xué)計算
Python 的開發(fā)效率很高,性能要求較高的模塊可以用 C 改寫,Python 調(diào)用。同時,Python 可以更高層次的抽象問題,所以在科學(xué)計算領(lǐng)域也非常熱門。包括 scipy、numpy 等用于科學(xué)計算的第三方庫的出現(xiàn),更是方便了又一定數(shù)學(xué)基礎(chǔ),但是計算機(jī)基礎(chǔ)一般的朋友。
圖像處理
這方面不熟,列幾個關(guān)鍵詞吧,如有錯誤,請斧正。
keywords : OpenCV, Pillow, PIL
十一、如何入門學(xué)習(xí)python?
零基礎(chǔ)情況下,想學(xué)一門語言。其實(shí)python非常適合初學(xué)者入門。相比較其他不少主流編程語言,有更好的可讀性,因此上手相對容易。那么如何快速掌握python?
設(shè)定目標(biāo):做 Python 開發(fā)除了熟悉語言本身之外,還需要掌握很多相關(guān)聯(lián)的技能,好比打NBA,你不光要學(xué)如何投籃,還要練習(xí)力量、技戰(zhàn)術(shù)等一整套東西。所以,一個普通Python Web開發(fā)工程師需要掌握的技能包括至少一個Web框架,比如:Django、Flask、Tornado,做業(yè)務(wù)系統(tǒng)必須熟知一種數(shù)據(jù)庫,還需要對Linux系統(tǒng)的基本操作和常用命令有所了解,因?yàn)橐院竽銓懙匠绦蚧旧隙紩\(yùn)行在Linux平臺上。
開發(fā)工具:工欲善其事必先利其器,Python IDE層出不窮,推薦Pycharm 和Sublime兩個工具都是免費(fèi)的,而且它們的學(xué)習(xí)成本非常低,網(wǎng)上找一篇教程看了基本就能上手,Vim、Emacs這樣的遠(yuǎn)古神器還是放以后再去了解吧。
Python3:新手開始總糾結(jié)學(xué) Python2 還是 Python3,這種糾結(jié)完全就是給自己徒增煩惱,因?yàn)樗鼈兪峭环N語言,只有少部分地方語法不兼容,盡管目前大部分公司還在用Python2,但是Python3逐漸成為主流已是不爭事實(shí),畢竟后者性能方面更占有優(yōu)勢。
學(xué)習(xí)框架:對于剛?cè)腴T的人,最重要的是培養(yǎng)Ta的學(xué)習(xí)興趣和信心。有的會擔(dān)心自己的基礎(chǔ)知識都那么薄弱,如何能學(xué)好框架呢?其實(shí)這個擔(dān)心倒是不必,大多數(shù)大型的框架都把功能封裝得很完整,定義了一套在自己的框架下做事的“規(guī)則”,學(xué)習(xí)框架更多的是學(xué)習(xí)這些“規(guī)則”,入門倒不需要很深的理論基礎(chǔ)。
【內(nèi)容介紹】通過《Python學(xué)習(xí)手冊(第4版)》,可以學(xué)習(xí)到Python的主要內(nèi)建對象類型如數(shù)字、列表和字典,以及學(xué)習(xí)到使用Python語句創(chuàng)建和處理對象的方法、通用語法模型。我們都知道,使用函數(shù)構(gòu)造和重用代碼,函數(shù)是Python的基本過程工具;學(xué)習(xí)Python的面向?qū)ο缶幊坦ぞ撸梢杂糜诮M織程序代碼;學(xué)習(xí)異常處理模型,可以用于編寫較大程序的開發(fā)工具。所以,想要學(xué)習(xí)Python模塊的封裝語句、函數(shù)以及其他工具,以便構(gòu)建較大的組件,此書是不錯的選擇。另外,《Python學(xué)習(xí)手冊(第4版)》還提供了了解高級Python工具,如裝飾器、描述器、元類和Unicode處理等章目。
2.《笨辦法學(xué)Python(第3版)》
【內(nèi)容介紹】《“笨辦法”學(xué)Python(第3版)》是一本Python入門書籍,適合對計算機(jī)了解不多,沒有學(xué)過編程,但對編程感興趣的讀者學(xué)習(xí)使用。此書結(jié)構(gòu)非常簡單,其中覆蓋了輸入/輸出、變量和函數(shù)三個主題,以及一些比較高級的話題,如條件判斷、循環(huán)、類和對象、代碼測試及項(xiàng)目的實(shí)現(xiàn)等。每一章的格式基本相同,以代碼習(xí)題開始,按照說明編寫代碼,運(yùn)行并檢查結(jié)果,然后再做附加練習(xí)。這本書以習(xí)題的方式引導(dǎo)讀者一步一步學(xué)習(xí)編程,從簡單的打印一直講授到完整項(xiàng)目的實(shí)現(xiàn),讓初學(xué)者從基礎(chǔ)的編程技術(shù)入手,最終體驗(yàn)到軟件開發(fā)的基本過程。
3.《利用Python進(jìn)行數(shù)據(jù)分析》
【內(nèi)容介紹】此書介紹了NumPy(NumericalPython)的基礎(chǔ)和高級知識,從pandas庫的數(shù)據(jù)分析工具開始利用高性能工具對數(shù)據(jù)進(jìn)行加載、清理、轉(zhuǎn)換、合并以及重塑的方法,利用matplotlib創(chuàng)建散點(diǎn)圖以及靜態(tài)或交互式的可視化結(jié)果的方法,利用pandas的groupby功能對數(shù)據(jù)集進(jìn)行切片、切塊和匯總操作的方法,以及處理各種各樣的時間序列數(shù)據(jù)的技巧。《利用Python進(jìn)行數(shù)據(jù)分析》實(shí)操性較強(qiáng)。
4.《集體智慧編程》
【內(nèi)容介紹】《集體智慧編程》全書內(nèi)容翔實(shí),包括協(xié)作過濾技術(shù)(實(shí)現(xiàn)關(guān)聯(lián)產(chǎn)品推薦功能)、集群數(shù)據(jù)分析(在大規(guī)模數(shù)據(jù)集中發(fā)掘相似的數(shù)據(jù)子集)、搜索引擎核心技術(shù)(爬蟲、索引、查詢引擎、PageRank算法等)、搜索海量信息并進(jìn)行分析統(tǒng)計得出結(jié)論的優(yōu)化算法、貝葉斯過濾技術(shù)(垃圾郵件過濾、文本過濾)、用決策樹技術(shù)實(shí)現(xiàn)預(yù)測和決策建模功能、社交網(wǎng)絡(luò)的信息匹配技術(shù)、機(jī)器學(xué)習(xí)和人工智能應(yīng)用等。以機(jī)器學(xué)習(xí)和計算統(tǒng)計為主題背景的《集體智慧編程》,專門講述如何挖掘和分析Web上的數(shù)據(jù)和資源,以及如何分析用戶體驗(yàn)、市場營銷、個人品味等諸多信息,并得出有用的結(jié)論,再通過復(fù)雜的算法來從Web網(wǎng)站獲取、收集并分析用戶的數(shù)據(jù)和反饋信息,以便創(chuàng)造新的用戶價值和商業(yè)價值。本書是Web開發(fā)者、架構(gòu)師、應(yīng)用工程師等專業(yè)人士的絕佳選擇。
5.《Python算法教程》
【內(nèi)容介紹】《Python算法教程》分別介紹了樹、圖、計數(shù)問題、歸納遞歸、遍歷、分解合并、貪心算法、復(fù)雜依賴、Dijkstra算法、匹配切割問題以及困難問題及其稀釋等內(nèi)容。每一章結(jié)束之處均有練習(xí)題和參考資料,為讀者的自我檢查以及進(jìn)一步學(xué)習(xí)提供了較多的便利。眾所周知,Python是一種面向?qū)ο蟆⒔忉屝陀嬎銠C(jī)程序設(shè)計語言,它的應(yīng)用領(lǐng)域非常廣泛,包括數(shù)據(jù)分析、自然語言處理、機(jī)器學(xué)習(xí)、科學(xué)計算以及推薦系統(tǒng)構(gòu)建等。本書主要關(guān)注經(jīng)典的算法,但同時會為讀者理解基本算法問題和解決問題打下很好的基礎(chǔ)。《Python算法教程》適合對Python算法感興趣的初中級用戶閱讀和自學(xué),也適合高等院校的計算機(jī)系學(xué)生作為參考教材來閱讀。
6.《Python核心編程(第3版)》
【內(nèi)容介紹】《Python核心編程(第3版)》共分為三部分。第一部分講解了Python的一些通用應(yīng)用,包括正則表達(dá)式、網(wǎng)絡(luò)編程、Internet客戶端編程、多線程編程、GUI編程、數(shù)據(jù)庫編程、MicrosoftOffice編程、擴(kuò)展Python等內(nèi)容。第二部分講解了與Web開發(fā)相關(guān)的主題,包括Web客戶端和服務(wù)器、CGI和WSGI相關(guān)的Web編程、Django、Web框架、云計算、高級Web服務(wù)。第三部分則為一個補(bǔ)充/實(shí)驗(yàn)章節(jié),包括文本處理以及一些其他內(nèi)容。本書適合具有一定經(jīng)驗(yàn)的
Python開發(fā)人員閱讀。
十三、結(jié)語:
通過上面文章的內(nèi)容,相信大家應(yīng)該能解答大家對于python的一些疑問,應(yīng)該知道了 “Python是什么?Python是做什么用的? ”這個問題!掌握python是未來不可或缺的技能,希望大家能去學(xué)。