1. 程式人生 > >人工智能時代,是時候學點Python了

人工智能時代,是時候學點Python了

事情 1年 系統 支持 著名 不錯 djang 夢想 恰恰

“是時候學點Python了”。作為一名不怎麽安分的程序員,你或許覺得,產生這樣的想法並不奇怪,但學習Python卻是出於自己對工作現狀以及如何應對未來挑戰所作出的思考。讀過我以前博客的朋友,可能都知道,我推崇軟件領域中的匠人精神,將軟件開發也視為一種制作,並將優秀的產品歸納為功能性與美感的結合。這在過去或許是普遍適用的優秀產品準則,然而,今天當我們已經站到人工智能時代的大門前時,我卻發現過去對於軟件產品的理解,已顯得有些狹隘且過時了。未來所有的優秀產品都應該是功能、美感與智能的有機結合。而這種新的智能特性無疑會給我們每一個人帶來巨大的機遇,不僅僅是我們程序員,也包括那些醫生、教師、金融從業人員亦或是學生,或正在為孩子想著學些什麽的家長,每個人都有機會通過將智能引入自己的工作、產品、生活中,去獲得新的成功。而今天我們放眼整個軟件開發領域,Python無疑是那個最能為我們帶來這一智能特性的編程語言。
技術分享圖片
那麽,又是什麽原因使Python能在眾多編程語言中脫穎而出,它又具有哪些迷人的特性呢?

數據科學基因帶來的智能特性
Python在今天變得如此重要,一個重要的原因便是它能更方便地為我們的工作以及生活創造智能的特性。人工智能在最近幾年得到突飛猛進的發展,其根本原因並不在於其理論基礎發生了根本性的變化。而恰恰在於,互聯網飛速發展之後,積累的大量可供分析的數據,以及對這些數據進行處理、分析以及預測的能力的顯著提升(包括雲計算提供的強大分布式運算能力,摩爾定律下每一個計算單元成本的持續降低,加之以神經網絡為代表的深度學習算法的應用),使我們得到了超乎想象的人工智能。在很多領域,比如被視為人類智慧最頂尖的棋類遊戲——圍棋,過去只有讀過那些名校才能得到的投行工作,甚至是需要豐富經驗的醫生、律師、飛行員,這些專業性要求極高的工作,都越來越多地受到來自人工智能的挑戰,有的甚至已被完全超越。

雖然有人對此表示擔憂,但我卻持樂觀的態度,並相信這是加速回歸定律(技術的不斷加速是加速回歸定律的內涵和必然結果,這個定律描述了進化節奏的加快,以及進化過程中產物的指數增長。《奇點臨近》、《機器之心》等書中,都將此理論作為對未來預測的基礎)作用下的必然結果。況且就目前而言,那些可預見的人工智能,更多取代的是那些需要基於復雜模式進行精確識別與處理的工作,這返過來將會解放更多人力,使我們可以在人工智能的協助下,將更多時間和精力投入到更具創造性和情感價值的有趣工作中。

而Python正是以數據科學而聞名,它擁有著極其豐富且穩定的數據科學工具環境,從而助推其成為大數據和雲計算中最流行的語言之一。而它的這種數據科學基因,也自然地延伸到了機器學習領域,今天,我們非常熟悉的眾多機器學習庫,如scikit-learn、Tensorflow等都基於或支持Python語言開發。我們可以很方便地使用它們,去構建自己的智能應用。

令人著迷數據分析與處理能力
Python被設計為有著廣泛通用性的編程語言,你幾乎可以利用它來做任何事情,包括創建Web應用或桌面應用、編寫程序腳本、配置服務器等等。但最令我著迷的還是它的看家本領——數據的分析與處理。我已經用JAVA寫了十多年代碼,也早已習慣使用它,處理工作中遇到的各種問題。但當我開始接觸Python之後,便立刻為它在數據處理與分析方面的強大功能與便利性而感到著迷。

雖然還只能算是個新手,但我已經嘗試著使用Pandas(全稱:Python Data Analysis Library,是一個基於 Numpy 構建的含有更高級數據結構和工具的數據分析包),寫了不少簡單的數據處理程序,這些程序都很短小,有的甚至才十幾行代碼,然而它們所能達到的效果,卻是以前用JAVA需要3倍,甚至更多的代碼量才能實現的。而且這些程序在運行速度和效率上,也絲毫不落下風,這點令我頗為驚喜。現在凡涉及到數據處理的工作,我都會優先選擇Python。雖然只是換了一種編程語言,但這一改變卻已著實大大提升了我的工作效率。

這不禁又讓我想到最近讀到的一篇非常有趣的文章,說的是一個醫生如何通過自學Python,將一些智能分析算法應用於病人診斷數據比對,以及超聲圖像分析,使自己從過去復雜而重復的工作中解放出來,變得效率倍增的故事。我暗想,這應該是個頗有遠見的醫生,利用Python賦予的數據處理能力,將智能引入到自己的工作和生活中,一切便隨之發生了改變。其實,和這位醫生一樣,我們很多人的工作都是與數據或圖像打交道,並基於一定的模式去處理它們,何不學學那位醫生,也學點Python,然後嘗試著去改變一下自己的工作和生活呢?

簡單、可靠、高效
還是讓我們回到語言本身,很多人會將Python稱為一門優雅的編程語言。關於編程語言的美學問題,不在這篇文章的探究範圍內,但Python留給我這個老程序員的印象,概括起來便是:簡單、可靠、高效。打個可能不太恰當的比方,它像極了紅樓夢中的經典人物形象:王熙鳳,雷厲風行,三下五除二便把一件復雜的事情處理得幹幹凈凈,毫不拖泥帶水。這可能也正是我越來越喜歡它的原因吧。

簡單
我前後接觸過不少編程語言,對我來說開發語言的語義都大致相同,而在語法上,Python無疑是簡單而精煉的,它似乎生來就是為程序員編碼效率而考慮的編程語言。這一點可能也與Python本身是一門解釋型語言有關。很多在其他編程語言編譯階段,需要給出的類型限制或約束,在Python中都可以省略。從下面兩個簡單的Python與Java對比的例子中,你也一定能看出Python語言簡潔的特點。

另外,Python語言也被設計得更接近於自然語言,比如:在Python中並沒有使用很多編程語言中用的"{}"來限定代碼塊,而完全采用縮進的方式加以限制。雖然很多程序員一開始會覺得不太習慣,但這卻在不經意間,使Python代碼更為整潔、一致,也就提供了更加良好的可讀性。

可靠
Python非常可靠,你可以將它使用在任何場景中,比如網頁開發、PC應用程序、數據處理、移動應用程序、硬件等等。而且在幾乎每一個領域,Python都提供了非常穩定且可靠的框架或第三方庫,從用於構建Web應用的Django,科學計算領域的NumPy,Pandas和SciPy,機器學習領域大名鼎鼎的scikit-learn,以及用於自然語言處理的nltk,你可以利用它們,輕松地構建不同用途的應用。並且,由於Python本身便是跨平臺的,你也不必擔心兼容性的問題。

高效
高效似乎一直與Python這樣的解釋型語言無關,然而,Python卻有其獨到之處。由於Python本身能夠非常方便地調用更底層的第三方庫,而那些底層庫大多又是用C或C++語言編寫的,因此借助Python的這種粘合劑能力,許多著名的第三方庫包括Python本身都能以更好的性能運行。即使在不同的平臺,你也不必擔心性能損失。

Google的支持以及一個強大的社區
Python並不是一個很新的編程語言了,它誕生於1991年,由於是免費的,你可以很方便地獲得它。Google從2006年起開始大力資助Python的發展。這對Python非常重要,因為這意味著,像Google這樣的科技巨頭,在很多優秀的項目中都會優先選擇Python,而在此過程中,Google創建了大量的Python指南和教程以及支持工具。這也反過來幫助更多小企業以及它們的開發人員加入到Python開發者的陣營中。

另一個使Python如此快速發展的重要原因是,它的背後有著一個健康、活躍的開發者社區。他們不但貢獻了大量文檔、指南、教程。還創建並維護著很多知名的Python第三方庫,開發人員可以非常方便的利用PIP下載這些第三方庫,並在自己的項目中使用。另外,無論你是一個新手還是一個有經驗的開發人員,當你遇到任何Python有關的問題,都可以在社區中提問並獲得幫助。

適合教、容易學
如果讓我選擇一門編程語言用於教學的話,我首先會想到Python。不僅因為它簡單,更重要的原因是,它能更好地貼近於人工智能時代對於開發者新的編程技能要求。Python有很好的數據分析處理以及機器學習的工具包,能幫助學習者方便地將它們應用到實際的工作中。而如果教學對象是年紀更小的中小學生,那麽,Python在數據科學方面的優秀特性,又能夠很好地啟發孩子們的數感,促進他們在數學方面的發展。

當然,Python語言本身具有清晰、簡潔的語法結構,更貼近於自然語言,運行高效,以及不需要構建、編譯便可以直接運行的特點也都非常適合於初學者學習。如果你正在考慮學習一門對未來有用的編程語言,那麽Python無疑會是你的最佳選擇。

如何開始
如果和我一樣,你也已經決定學習Python,那麽一個良好的開始無疑會幫助你獲得成功。關於如何起步,我相信每個人都有自己不同的偏好。有些喜歡買書,比較系統地進行學習,比如:《笨辦法學編程》、《和孩子一起學編程》是針對成人或孩子不錯的Python入門書籍。有些則喜歡通過網上視頻學習,比如慕課網、網易雲課堂、騰訊課堂等等,也都有不錯的Python入門課程,而且大多是免費的。還有一些喜歡用App以交互的方式學習,比如codedemy。

關於怎麽快速學Python,有什麽方法,這個問題,想必大家都已經心中有數了,打算深入了解這個行業的朋友,可以加下小編的Python學習群:862672474,不管你是小白還是大牛,小編我都歡迎,不定期分享幹貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。

每天晚上20:00都會開直播給大家分享Python學習知識和路線方法,群裏會不定期更新最新的教程和學習方法(進群送2018Python學習教程),大家都是學習Python的,或是轉行,或是大學生,還有工作中想提升自己能力的Python黨,如果你是正在學習Python的小夥伴可以加入學習。最後祝所有程序員都能夠走上人生巔峰,讓代碼將夢想照進現實,非常適合新手學習,有不懂的問題可以隨時問我,工作不忙的時候希望可以給大家解惑。

在Python領域,我還只能算是個初學者。我將Python視為自己的第二編程語言,去解決工作中經常遇到的數據處理、分析問題。我還希望通過學習那些優秀的機器學習庫,將智能引入到自己的工作中。相信我,你也不用成為這些方面的專家,只需要學一點Python,然後嘗試著去運用,它們便會像魔法一樣改變你的工作和生活。

人工智能時代,是時候學點Python了