除了AI,你不該忽視Python在這4大領域的應用!
人工智慧為Python火熱增長動力
藉著人工智慧的東風,Python在這兩年逐漸火了起來,Python在程式語言排行中的不斷攀升,不得不說有著人工智慧的很大功勞。憑藉Python簡潔易於上手的語法和豐富的擴充套件,Python在人工領域的應用越來越廣泛。
越來越多的培訓機構也以“Python”和“人工智慧”作為旗號和噱頭,打著“21天精通Python,3個月掌握人工智慧”的口號,收割了一波又一波迷茫的應屆畢業生和在其他行業鬱郁不得志的轉行從業人員。
彷彿學了Python就會人工智慧,又彷彿要學習人工智慧就必須學習Python。
誠然,Python各種第三方機器學習、神經網路模組的誕生大大降低了對機器學習演算法、模型的建構、訓練和測試的難度。使得普通人通過簡單地呼叫模組的API就能夠實現可進行預測的某某神經網路。
但是Python不只是為了人工智慧而生,人工智慧也不只是Python的專屬。Python從上個世紀90年代誕生至今,從玩具語言,到萬能語言。它所能帶給我們的,不僅僅是人工智慧的風口熱點,作為一門膠水語言,其在其他領域的發展和應用也十分顯著和高效,其中一些方面還能夠與人工智慧緊密地結合在一起。也值得我們去運用和了解。
如果僅僅侷限Python在人工智慧領域的應用,未免浪費了Python大好的生態環境。下面,跟隨州的先生(微信公眾號:zmister2016)一起來了解一下,Python在其他5大領域的應用。
網路爬蟲——大資料時代,沒有資料怎麼行?
都說現在是大資料時代了,大資料,大資料,沒有海量的資料怎麼能夠稱之為大資料。大資料的來源大概有這麼幾種:
● 企業內部原始積累資料。
經過長年累月的業務沉澱,企業內部的資料庫中積累的海量的資料可供應用;
● 外部採集資料
外部採集資料,通過各種軟體(八爪魚、火車頭等採集器)直接進行資料採集,或者使用各種程式語言編寫網路爬蟲進行資料採集。
說到使用程式語言編寫網路爬蟲,就不得不提到Python的簡便、高效和、強大了。在幾年之前,大多數網路爬蟲還是使用java進行編寫的,但是隨著Python生態的不斷壯大,其簡潔的語法搭配強大的功能,使得Python在編寫網路爬蟲有著得天獨厚的優勢。
從 HTTP請求 ,到頁面 資料解析 ,到 資料儲存 ,甚至於其間的 模擬登陸 , 驗證碼識別 , 代理IP 使用, 併發請求 都能夠很好的進行處理。
州的先生(微信公眾號:zmister2016)也曾在部落格中寫過一個簡單的Python爬蟲入門系列文章: https://zmister.com/archives/category/scrap/pythonscrapbook 其PDF版的文章合集可以在公眾號內(微信公眾號:zmister2016)回覆關鍵詞“ 爬蟲教程電子書 ”進行獲取。
Web開發——讓世界看到你的作品
雖說在Web開發領域,PHP佔了大頭,世界上絕大多數的網站都是使用PHP開發的,但是這也絲毫掩蓋不了Python在Web開發領域的光彩。
在Python中進行Web開發,主要依賴於各個Web開發框架,流行的有:
● 功能強大,採用MTV架構的Django框架;
● 輕量簡潔的Flask;
● 效能超群的tornado;
……
使用這些框架可以快速地根據自己的需求開發出一個合格的Web應用。小到個人部落格,大到商品化的產品,Python中的Web框架都能夠勝任。
州的先生主要使用Django框架進行Python的Web開發,相較於其他的Python Web框架,Django有幾個顯著的特點吸引了我:
● 功能全面,不需要安裝其他的第三方模組進行基礎功能的應用;
● 順手的ORM,資料模型異常的強大和好用;
● 強大的後臺系統,自帶強大的後臺管理系統,一些不復雜的後臺管理都可以通過它來實現;
……
使用Django框架進行開發的Web應用中比較出名的有Instagram,一個國外的移動端照片視訊分享應用。其使用Django作為應用後端服務,支撐了7億的月活使用者。
Instagram Logo
資料分析——看到資料的背後的真相
資料分析也是隨著大資料的概念再次興起的一個領域。有了大量的資料,自然需要對其進行資料清理、資料提取和資料分析。
在科學計算和資料分析領域,Python一直沒有缺席。在這些方面都有非常成熟的第三方模組和活躍的社群,使python成為資料處理任務的一個重要解決方案。
NumPy和Pandas等模組,為資料處理提供了非常大的便利。
matplotlib、pyecharts等模組也是非常優秀的資料視覺化模組。
Jupyter Notebook模組則為資料分析人員提供了一種全新的資料分析流。
很多人通過Python編寫爬蟲採集資料(影評、歌評,各種評)之後,直接就可以繼續使用Python的pandas模組分析採集下來的資料,並用諸多資料視覺化模組生成漂亮的報表和圖表,最後以一篇圖文並茂的文章《XXX用Python爬取了XXX的XXX條資料,告訴你不一樣的XXX》,風靡朋友圈。很讚的。
GUI開發——向更多人分享你的程式設計成果
如果程式碼永遠都只是停留在程式碼層面,那麼其能夠實現的功能永遠都不方便傳播和供大多數人使用,所以將其通過桌面程式包裝出來,就很有必要。
比如我們使用Python寫了一個自動簽到小程式,寫了一個特定網站的採集程式,嗯,覺得很好用,想分享給同事、同學或者其他小夥伴。如何包裝這個程式,給他們都能使用呢,最好的做法還是編寫打包出GUI的圖形使用者介面桌面程式,直接將打包好的程式檔案傳送過去。既方便編寫者傳播,也方便使用者使用。
Python在編寫GUI程式方面,有多種選擇,都能夠實現不錯的功能。其中:
● Tkinter,是Python的內建模組,無需安裝第三方的模組,就可以使用,實現編寫一些簡單,互動不復雜的GUI程式。
● PyQt5/PySide2:,Qt的Python封裝包,功能強大,可編寫複雜的GUI程式。
● WxPython,是wxWidgets的Python封裝包,與PyQt5類似。
● Kivy,新興的跨平臺GUI開發模組,支援移動端的GUI開發。
……
像州的先生,就通過PyQt5將很多爬蟲程式和其他的程式編寫為圖形使用者介面的工具,極大的方便了自己和同事的工作。在gitchat平臺,州的先生也曾分享過通過PyQt5編寫一個用於淘寶客的微信機器人程式。詳情可以點這裡檢視: ofollow,noindex">如何使用Python和PyQt5編寫一個微信群聊導購機器人
目前州的先生部落格(https://zmister.com)也在持續更新一個基於PyQt5的Python GUI基礎教程,有興趣的同學可以檢視。
州的先生編寫的某爬蟲桌面程式
最後…
上面介紹了4個州的先生在日常使用Python中經常會涉及到的一些領域的應用。其實除此之外,還有很多領域都有Python的身影,比如網路安全,滲透測試,自動化運維,等等。
Python是一門膠水語言,這是它的劣勢,同時也是它的優勢,通過各種擴充套件,Python能夠實現絕大多數領域的應用。其作為一門通用性的程式語言,適合銜接不同的領域,實現所謂的All in Python。
原文釋出時間為:2018-11-8
本文作者:州的先生
本文來自雲棲社群合作伙伴“ Python愛好者社群 ”,瞭解相關資訊可以關注“ Python愛好者社群 ”。