Python簡介(3)全能與潮流
2017年最新IEEE世界編程語言排行榜公布,Python高居榜首。
在此之前,Python被廣泛應用在web開發、系統運維、數據爬蟲、數據分析和遊戲伺服器開發等,隨著人工智慧的浪潮,Python以其獨特的語法特性和豐富的第三方類庫成為了機器學習演算法編程的優選語言之一。
著名的機器學習框架TensorFlow、Keras等都有Python的對應支持庫。
機器學習相關的教程將會在我的另一個欄目中詳細介紹。
下面主要介紹下Python常用的開發工具包以及對應類型的優秀產品。
web開發:
Flask、Django、Tornado
1 Flask 基於Werkzeug和Jinjia2開發,是一個輕量型web框架,適用於中小型項目、個人博客和web_api服務,可拓展性強。
2 Django 適用於大型服務系統、後台管理系統、OA、ERP等,插件齊全,模塊規範,許可權控制強大,社區資料也很完善,是一個很成熟的web框架。對了,Django的錯誤提示界面是筆者見過最好看的
3 Tornado 這個框架的特點是自帶非同步非堵塞網路模型,適用於開發TCP Server。
著名Python web項目:
1 Reddit 一個國外知名的社交分享網站。最早使用Lisp開發,2005年改為Python。
2 豆瓣網 國內著名的文化產品資料資料庫網站和文化交流平台。
3 Youtube 著名的視頻分析網站,類似國內的bilibili。
遊戲開發:
Pygame、Cocos2d-Python
1 Pygame是最經典的python遊戲開發工具,適合新手入門。
2 Cocos2d-Python是著名開源遊戲框架cocos2d的python支持包,其設計理念較為新穎。
著名Python開發的遊戲或相關模塊:
1 席德梅爾的文明4 舉世聞名的策略遊戲,世界核平梗的起源。
2 戰地2 一款射擊類遊戲,頂尖的武器系統,自由度高。
3 EVE 大型太空經營管理、戰鬥策略網遊。
資料庫相關:
SQLAIchemy、Pymysql
1 Pymysql 是python自帶的資料庫管理工具,連接較為簡便,但操作資料庫時需要自己編寫sql語句。
2SQLAIchemy 是一個第三方工具,通過ORM方式管理資料庫,適用於大型項目的資料庫業務。
著名的Python編寫的資料庫管理工具:
MySQL Workbench 一款可視化資料庫管理工具,類似Navicat。
Http數據處理及數據爬蟲工具:
Requests、Urllib、Scrapy、BeautifulSoup
1 BeautifulSoup 是一個可以從html或xml文件中提取數據的python庫,可單獨作為一個模塊靈活運用到各類框架中。
2 Scrapy 是一個完整的爬蟲系統框架,功能齊全。
3 Urllib是python的標準庫,如果只是單頁面解析或介面數據解析,使用此工具較為便捷。
4 Requests 同理Urllib,適合處理普通的Http協議數據和web_api服務數據解析。
GUI圖形界面編程:
建議初學者使用TKinter,了解下GUI編程的基本概念。熟練掌握後可用於開發PC端的各類可視化應用,或者製作一些靜態載入類型桌面遊戲(比如五子棋)。
圖像處理工具:
PIL、OpenCV2
1 PIL(pillow 為最新更新包,PIL已停止更新) 為Python的圖像處理標準庫,可完成常規的圖像處理。
2 OpenCV 為專業圖像處理庫,對c++、python等語言均有支持,可以說是PIL的全面升級版,同時使用OpenCV還可以進行圖像識別開發,如人臉識別技術等。
系統運維及相關軟體開發:
Python由於具有腳本語言特性,很多時候用來編寫進程管理程序比使用Bash相關腳本來得方便。著名的Linux後台進程管理神器 Supervisor便是Python2的傑作。
自動化測試與行為模擬腳本:
Selenium、Pywin32、Virtkey
1 Selenium作為是一款跨平台自動化測試工具,可以模擬用戶在瀏覽器中的各類行為,常用來測試web應用程序。
2 Pywin32與Virkey分別是針對windows和linux是系統的滑鼠、按鍵模擬操作庫,可實現類似按鍵精靈的功能。
大數據分散式集群框架:
說到大數據基本上想到的都是Hadoop、Spark之流,這些都是Java端的工具,然而由豆瓣開發的Dpark也成功地為python的大數據處理模塊添磚加瓦,Dpark是Spark的克隆版。
圖像繪製與數據可視化:
matplotlib、wordcloud、turtle
1 matplotlib是python的圖像繪製標準類庫,可用於繪製函數曲線、點陣、拓撲圖等。
2 wordcloud是第三方庫,用於大數據分析的熱頻詞可視化,使得數據分析的結果展示更有逼格。
3 turtle 是一個有趣繪圖工具,turtle顧名思義是一隻小海龜,用戶編製程序然後讓小海龜繪製圖像,並能展示出繪製過程,特別適合鍛煉編程思維。turtle的設計源於早期的LOGO語言編程,常用於兒童編程思維教程。
機器學習與科學計算:
NumPy、Tensorflow、Keras
1 NumPy 是 python的數學計算拓展庫,適用於矩陣處理和數值編程,並且內置了很多數學函數。
2 Tensorflow Google公司開發的機械學習框架,目前已開源,Tensorflow重新定義了機器學習模型的設計思維,擁有一套獨立的語法。學習Tensorflow可以致力於多方面研究,包含自然語言處理、人機博弈、圖像識別、自動駕駛、文藝創作等。
3 Keras 是一個深度學習庫,基於Tensorflow、Theano、Cntk的部分模塊開發,旨在為用戶提供友好的機器學習實踐體驗。
機器學習領域的優秀作品:
自然語言處理工具:Jieba、NLTK、StanfordNLP、Word2Vectory等(這些工具的使用會在之後的教程中詳細介紹)
各類聊天機器人:微軟小冰、小黃雞、Siri、Cortana、Tay(因學習不正當言論現已下架)、圖靈、科大訊飛聊天機器人等。
繪畫輔助:
Google AutoDraw (識別用戶畫的圖並給出對象預測)
Edges2Cats(基於Tensorflow開發,可將圖像擬化成貓,也可拓展其他類別)
Image2txt (Tensorflow的教案項目之一,可以對圖片進行標記和內容描述)
遊戲輔助、外掛:
flappy-bird-master (人工智慧玩Flappy)
Alphago(不用說了吧)
OpenAI(Dota2打敗世界關鍵的那個 )
自動駕駛:自行觀看去年的百度世界大會。
文藝創作:
PainsChainer (一款漫畫自動上色軟體)
另外知乎上有一篇利用Keras轉換圖像風格的文章有興趣的小夥伴也可自行搜索。
本篇介紹到此結束。感興趣的小夥伴們點個贊吧~!心動的小夥伴們趕緊操起鍵盤敲代碼吧!
TAG:Python |