2016年年度十大Python庫

1. Zappa

鏈接:https://www.zappa.io/
自 AWS Lambda(以及后續(xù)的其它項目)發(fā)布以來,人們的關注點就全部轉移到了無服務器架構上。這些架構讓我們可以將微服務(microservice)部署到云端、部署到一個完全可管理的環(huán)境中;在這樣的環(huán)境中,人們不用關心管任何服務器,而只需要分配無狀態(tài)的腰池、短暫的計算容器(computing container)即可——一個服務提供商即可完全管理。通過這一范式,事件(比如流量尖峰)可以觸發(fā)更多這些容器的執(zhí)行,因此有可能能夠處理「無限的」水平擴展忙芒。
Zappa 是一個用于 Python 的無服務器框架,盡管(至少目前)它僅支持 AWS Lambda 和 AWS API Gateway示弓。它使得開發(fā)這樣架構的應用變得非常簡單,能將你從使用 AWS Console 或 API 的繁瑣配置工作中解放出來,而且它還有各種用于簡化部署和管理不同環(huán)境的命令。

2. Sanic + uvloop

鏈接:
Sanic: https://github.com/channelcat/sanic
uvloop: https://magic.io/blog/uvloop-blazing-fast-python-networking/
誰說 Python 不能很快?Sanic 不僅有可能是有史以來最好的軟件庫名字,也可能是有史以來最快的 Python 網(wǎng)頁框架,而且似乎也遠遠超過其它框架呵萨。它是一個專為速度而設計的類 Flask 的 Python 3.5+ 網(wǎng)頁服務器奏属。另一個庫 uvloop 是一個用于 asyncio 的事件循環(huán)(event loop,其底層使用了 libuv)的超快速的插件替代。這兩個加起來就是一個強大的組合!
根據(jù) Sanic 的作者的基準測試,uvloop 可以驅動 Sanic 每秒處理超過 3.3 萬條請求,這實在太強了!(比 node.js 還快)潮峦。你的代碼可以受益于這種新的 async/await 語法——它們會看起來很整潔;此外我們也喜歡 Flask 風格的 API囱皿。你一定要試試 Sanic,而且如果你也在使用 asyncio,你也可以無需太多修改你的代碼就能受益于 uvloop。

3. asyncpg

鏈接:https://github.com/MagicStack/asyncpg
跟進 asyncio 框架的最新進展,來自 MagicStack 的人為我們帶來了這個高效的異步(目前只支持 CPython 3.5)數(shù)據(jù)庫接口庫,其是專門為 PostgreSQL 設計的忱嘹。它有零相關性,這意味不需要安裝 libpq嘱腥。相對而言,withpsycopg2(最流行的 Python 的 PostgreSQL 適配器)需要以文本格式與數(shù)據(jù)庫服務器交換數(shù)據(jù);而 asyncpg 則實現(xiàn)了 PostgreSQL 二進制 I/O 協(xié)議,這讓其不僅支持通用類型,而且還有其它許多性能上的好處。
其基準是很清楚的:asyncpg 平均至少比 psycopg2(或 aiopg)快 3 倍,也比 node.js 和 Go 實現(xiàn)更快拘悦。

4. boto3

鏈接:https://github.com/boto/boto3
如果你的基礎設施部署在 AWS 上或使用了它們的服務(比如 S3),那么你應該非常樂意看到 boto(用于 AWS API 的 Python 接口)被從頭到尾完整重寫了齿兔。而且你不用一次性就完全遷移你的應用:你可以同時使用 boto3 和 boto(2) ;比如僅在你應用中新的部分使用 boto3。
這個新的實現(xiàn)在不同的服務間會一致的多,而且因為其使用了數(shù)據(jù)驅動的方法來在運行時間(runtime)從 JSON 描述文件中生成類,所以其總是可以實現(xiàn)快速更新础米。再也不用滯后于新的 Amazon API 功能了,趕緊使用 bot3 吧!

5.TensorFlow

鏈接:https://www.tensorflow.org/
大名鼎鼎的 TensorFlow分苇。自從谷歌在 2015 年 11 月發(fā)布以來,這個庫已經(jīng)獲得了很多改進,它已成為時下最流行的 GitHub Python 庫。簡而言之,TensorFlow 是一個使用數(shù)據(jù)流圖(data flow graphs)的數(shù)值計算庫,可以在 GPU 或 CPU 上運行屁桑。
在過去一年里,我們目睹了 TensorFlow 在機器學習社區(qū)中掀起了一股新風潮(特別是在深度學習領域),它不僅出現(xiàn)在研究領域,而且在應用領域也非常常見医寿。如果你正在做深度學習并想在高級別接口中使用它,你可以嘗試以它為后端的 Keras 或新推出的 TensorFlow-Slim。

6.gym+universe

Gym:https://gym.openai.com/
Universe:https://universe.openai.com/
如果你是人工智能圈內的人,肯定聽說過非營利人工智能研究公司 OpenAI蘑斧。他們的研究人員在今年開源了一些 Python 代碼靖秩。Gym 是一個用于開發(fā)并比較強化學習算法的工具包艾帐。它包含一個開源庫,這個庫收集了一些可被用于測試強化學習算法的測試問題(環(huán)境)。它還包含一個站點與 API,能讓你對比訓練出的算法(代理,agent)的表現(xiàn)盆偿。因為它不在乎代理的實現(xiàn)方式,你可以選擇使用自己的計算庫建立代理:numpy柒爸、TensorFlow、Theano 等事扭。
他們最近也發(fā)布了 Universe,這是一個用于研究通用人工智能在跨游戲捎稚、網(wǎng)頁和其他應用上的表現(xiàn)的軟件平臺。Universe 能完美匹配 gym,因此它能讓任何真實世界應用調整進 gym 環(huán)境中求橄。研究人員希望這一無限的可能性能夠加速對智能代理的研究,從而解決通用任務今野。

7.Bokeh

鏈接:http://bokeh.pydata.org/
你可能熟知一些提供數(shù)據(jù)可視化的 Python 庫,其中最流行的就是 matplotlib 和 seaborn。然而,Bokeh 被創(chuàng)造用來做交互可視化(interactive visualization),并且面向現(xiàn)代的網(wǎng)頁瀏覽展示罐农。這意味著 Bokeh 能創(chuàng)造出一個可以讓你探索來自網(wǎng)頁瀏覽器數(shù)據(jù)的情節(jié)(plot)条霜。比較棒的是它緊密融合了 Juptyer Notebooks,所以你能使用它配合你的專業(yè)工具進行研究。它也有一個可選的服務器組件 bokeh-server,其帶有許多強大的功能,比如在服務器端對大型數(shù)據(jù)集進行下采樣涵亏、流傳輸數(shù)據(jù)宰睡、變換等∑睿可點擊網(wǎng)址 http://bokeh.pydata.org/en/latest/docs/gallery.html 查看案例,看起來很棒拆内。

8.Blaze

鏈接:https://blaze.readthedocs.io/en/latest/index.html
有時候,當你對數(shù)據(jù)集運行分析時,卻發(fā)現(xiàn)數(shù)據(jù)集過大,無法一次塞進計算機 RAM 中。如果你無法依賴 numpy 或 Pandas,你通常需要轉而使用其他的工具,如 PostgreSQL宠默、MongoDB麸恍、Hadoop、Spark 等等搀矫。這些工具都有其自身的優(yōu)缺點,依照任務的特點,總有一種工具是適合你的抹沪。但決定轉換工具是一項巨大的工程,因為你需要了解這些系統(tǒng)如何工作,以及如何以正確的形式插入數(shù)據(jù)。
Blaze 提供了一個統(tǒng)一的接口,讓用戶無需學習所有數(shù)據(jù)庫技術瓤球。Blaze 庫的核心是一種計算表達方式融欧。Blaze 本身不會進行任何計算:它只是知道如何指定一個特定的后端,決定誰來執(zhí)行任務。Blaze 還有其它很多功能(它形成了一個生態(tài)系統(tǒng)),它作為一個庫被開發(fā)出來冰垄。例如,Dask 實現(xiàn)了一個可用于 NumPy 數(shù)組的插件,可以處理大于內存的內容和利用多核處理器,并且還具有動態(tài)任務調度能力蹬癌。

9.Arrow

鏈接:https://github.com/crsmithdev/arrow
有一個流行的說法,在計算機科學領域只有兩個大問題:無效緩存和命名。我認為這句話忽略了另一個大問題:管理數(shù)據(jù)時間(managing datetimes)虹茶。如果你曾經(jīng)試圖在 Python 中管理數(shù)據(jù)時間,你就會知道標準庫里有巨量的模塊和類型:datetime逝薪、date、 calendar蝴罪、 tzinfo董济、 timedelta、 relativedelta要门、 pytz 等等虏肾。更糟糕的是,時區(qū)都自然設定為默認值廓啊。
Arrow 為開發(fā)者提供了「人類的時間(datetime for humans)」,提供了一種清晰的方法來創(chuàng)建、操作封豪、格式化和轉換日期谴轮、時間和時間戳。它可以用于替換 Python 2 和 3 的 datetime 類型,并提供了一個更友好的界面,同時加入新的功能(如 humanize)彌補了原系統(tǒng)的不足吹埠。即使你不需要 Arrow 提供的額外功能,使用它也可以大大減少代碼中的引用第步。

10. Hug

鏈接:http://www.hug.rest/
公開你的內部 API,這樣可以大大簡化 Python API 的開發(fā)過程。Hug 是一個僅限于 Python3 的庫,提供在 Python 中創(chuàng)建 HTTP REST API 的最簡單的方式缘琅。它不是一個 web 框架(雖然 Hug 提供這樣的功能,而且表現(xiàn)很好),它的主要功能是公開正確的標準內部 Python API粘都。這個想法非常簡單:一次定義邏輯和結構,并且可以通過多種方式公開你的 API。目前,它支持公開 REST API 或命令行界面刷袍。
你可以使用類型注釋(type annotations),讓 Hug 不僅為你的 API 生成文件,同時提供驗證和明確的錯誤消息,這可以讓你的開發(fā)工作(和你的 API 用戶的工作)變得輕松很多翩隧。Hug 構建在 Falcon 的高性能 HTTP 庫之上,這意味著你可以使用任何 wsgi 兼容的服務器(例如 gunicorn)將其部署到生產環(huán)境中。

原文鏈接:https://tryolabs.com/blog/2016/12/20/top-10-python-libraries-of-2016/

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末呻纹,一起剝皮案震驚了整個濱河市堆生,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌居暖,老刑警劉巖顽频,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異太闺,居然都是意外死亡,警方通過查閱死者的電腦和手機嘁圈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門省骂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人最住,你說我怎么就攤上這事钞澳。” “怎么了涨缚?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵轧粟,是天一觀的道長。 經(jīng)常有香客問我脓魏,道長兰吟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任茂翔,我火速辦了婚禮混蔼,結果婚禮上,老公的妹妹穿的比我還像新娘珊燎。我一直安慰自己惭嚣,他們只是感情好遵湖,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晚吞,像睡著了一般延旧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上槽地,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天迁沫,我揣著相機與錄音,去河邊找鬼闷盔。 笑死弯洗,一個胖子當著我的面吹牛,可吹牛的內容都是我干的逢勾。 我是一名探鬼主播牡整,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼溺拱!你這毒婦竟也來了逃贝?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤迫摔,失蹤者是張志新(化名)和其女友劉穎沐扳,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體句占,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡沪摄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了纱烘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杨拐。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖擂啥,靈堂內的尸體忽然破棺而出哄陶,到底是詐尸還是另有隱情,我是刑警寧澤哺壶,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布屋吨,位于F島的核電站,受9級特大地震影響山宾,放射性物質發(fā)生泄漏至扰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一塌碌、第九天 我趴在偏房一處隱蔽的房頂上張望渊胸。 院中可真熱鬧,春花似錦台妆、人聲如沸翎猛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽切厘。三九已至萨咳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疫稿,已是汗流浹背培他。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留遗座,地道東北人舀凛。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像途蒋,于是被迫代替她去往敵國和親猛遍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內容

  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,489評論 6 427
  • 環(huán)境管理管理Python版本和環(huán)境的工具号坡。p–非常簡單的交互式python版本管理工具懊烤。pyenv–簡單的Pyth...
    MrHamster閱讀 3,794評論 1 61
  • Python常用庫大全,看看有沒有你需要的宽堆。 環(huán)境管理 管理 Python 版本和環(huán)境的工具 p – 非常簡單的交...
    XDgbh閱讀 15,862評論 4 147
  • 原文鏈接: http://www.reibang.com/p/9c6ae64a1bd7 GitHub 上有一個 A...
    李紹俊閱讀 6,102評論 0 92
  • GitHub 上有一個 Awesome - XXX 系列的資源整理,資源非常豐富腌紧,涉及面非常廣。awesome-p...
    若與閱讀 18,653評論 4 418