中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

2019 年度 Python 類庫 Top 10

2020-01-08    來源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

作者:Fabián Torres, Elías Masquil,Alan Descoins,Germán Hoffman 譯者:冬雨 來源:InfoQ

這是第五屆 Python 類庫 Top 10 年度榜。在這里,你會(huì)發(fā)現(xiàn)一些隱藏在開源世界中的珍寶,它們能讓你開始著手新的項(xiàng)目,或者讓你現(xiàn)有的項(xiàng)目更加有趣。從這份榜單里,你既能找到機(jī)器學(xué)習(xí)的庫,也能找到非機(jī)器學(xué)習(xí)的庫,所以它在各方面均有所涉及。
 

1. HTTPX

如果你是一名經(jīng)常與 api 交互的 Python 死忠粉,可能會(huì)很熟悉 requests 類庫。然而,異步范式在高性能現(xiàn)代應(yīng)用程序中越來越常見,如果你使用的正是異步范式,requests 可不會(huì)給你帶來什么好處。

為了解決這個(gè)問題, Tom Christie 和他的合作者為我們帶來了 HTTPX,它是用于下個(gè)十年的新一代異步 HTTP 客戶端。

HTTPX 延續(xù)了 requests 的用法,為你提供了標(biāo)準(zhǔn)特性以及 HTTP/2 和 HTTP/1 支持。除此之外,還包括使用 ASGI 協(xié)議直接調(diào)用 Python Web 應(yīng)用程序以及完全類型注解等其他特性。

你需要同時(shí)發(fā)出大量請(qǐng)求?那么 HTTPX 就是新的首選。

注意:目前仍在 alpha 版本中考慮 HTTPX,現(xiàn)只作為異步客戶端開發(fā)。在未來,將再重新引入同步客戶端。

2. Starlette

Starlette 是一個(gè)輕量級(jí)的 ASGI 框架 / 工具包,具有包括 WebSocket 和 GraphQL 支持,進(jìn)程內(nèi)后臺(tái)任務(wù)和真正的高性能等一系列特性。除此之外,還有 100% 類型注解的代碼庫和無依賴?梢园阉醋魇且话娣浅]p量的、現(xiàn)代的和異步的 Flask 。

你還可以靈活地選用它,決定是將其作為一個(gè)完整的 web 框架來使用,還是僅僅作為一個(gè) ASGI 工具包來使用。

它運(yùn)行在一個(gè) ASGI 服務(wù)器上,比如 uvicorn ,它去年也排進(jìn)了 Top 10。如果你正在考慮開發(fā)一款新的 Web 應(yīng)用程序,那么你一定要給 Starlette 一個(gè)嶄露頭角的機(jī)會(huì)。

3. FastAPI

Starlette 很棒,但它非常簡(jiǎn)約,且非常開放。這給了你很大的自由,但有時(shí),你只是需要一個(gè)把事情做得又對(duì)又快的框架。

Sebastian Ramirez 的 FastAPI 正是這樣的一款框架。無論在哪層意義上講,它都可稱得上快。

這款新框架基于的是 OpenAPI 標(biāo)準(zhǔn),用于構(gòu)建具有 Python 高性能特性和自動(dòng)交互文檔的 API。它默認(rèn)支持 Swagger UI 和 ReDoc ,使你能夠直接從瀏覽器調(diào)用和測(cè)試你的 API,從而加快開發(fā)時(shí)間。使用此框架構(gòu)建 API 既快速又簡(jiǎn)單。

這個(gè)庫還利用了現(xiàn)代 Python 的最佳實(shí)踐之一:類型提示。FastAPI 在很多方面都使用類型提示,但是最酷的特性之一是由 Pydantic 提供支持的自動(dòng)數(shù)據(jù)校驗(yàn)和轉(zhuǎn)換。

FastAPI 是基于 Starlette 構(gòu)建的,其性能與 NodeJS 和 Go 相當(dāng),而且它還支持原生 WebSocket 和 GraphQL。

最后,但并非最不重要的是,它擁有一些為開源庫編寫的最好的技術(shù)文檔。說真的,強(qiáng)烈建議看一看。

4. Immutables

MagicStack 的工作人員回歸,他們使用了簡(jiǎn)單優(yōu)雅的不可變映射類型 (“凍結(jié)的字典”)。

誰能從中受益呢?其底層數(shù)據(jù)結(jié)構(gòu)是一個(gè)哈希數(shù)組映射的字典樹 (HAMT),在 Haskell 等函數(shù)式編程語言中使用。最有趣的是,對(duì)于 set() 和 get() 操作,它們都提供了 O(log N) 性能,對(duì)于相對(duì)較小的映射來說其實(shí)就是 O(1)。

如果你的應(yīng)用程序使用了更大的字典,可以使用 bump 提高性能,這個(gè)酷酷的新庫可以值得關(guān)注。

5. Pyodide

Pyodide 是一個(gè)真正能讓你大吃一驚的項(xiàng)目。它使用 WebAssembly 將 Python 科學(xué)棧引入瀏覽器,將科學(xué)計(jì)算提升到了一個(gè)全新的水平。

想要用 NumPy 處理一些數(shù)字嗎?使用 Pandas 處理一些較大的數(shù)據(jù)流?使用 NumPy 標(biāo)制結(jié)果?幸有 Pyodide,現(xiàn)在你可以在瀏覽器中輕松實(shí)現(xiàn)所有這些功能,甚至更多。

除此之外,更好的消息是:它的 packages 目錄列出了超過 35 個(gè)當(dāng)前可用的包。不夸張地說,天空是其唯一限制。

6. Modin

Modin 的座右銘是通過改變一行代碼來擴(kuò)展你的 Pandas 工作流程,真的,就這么簡(jiǎn)單。只需安裝 Modin,改變你的導(dǎo)入語句,在當(dāng)下?lián)碛卸嗪颂幚砥鞯墓P記本電腦上就能獲得高達(dá) 4 倍的速度優(yōu)勢(shì)。

它是怎么做到的?現(xiàn)在來揭曉這個(gè)秘密。Modin 實(shí)現(xiàn)了自己的 modin.pandas.DataFrame 對(duì)象,它是一個(gè)輕量級(jí)并行 DataFrame。這個(gè)對(duì)象的使用是透明的,因?yàn)樗c Pandas 是 api 兼容的,并且它是在后臺(tái)運(yùn)行的,它將使用 Ray 或 Dask 之類的計(jì)算引擎來分發(fā)數(shù)據(jù)和計(jì)算。

有時(shí)候,只需要對(duì)你的代碼做一些小的修改就能使速度獲得極大的提升,Modin 就是個(gè)很好的證明。

7. Streamlit

在每個(gè)重大的機(jī)器學(xué)習(xí)項(xiàng)目中,都有一個(gè)你最終需要與模型和數(shù)據(jù)進(jìn)行手動(dòng)交互的時(shí)間點(diǎn)。與花費(fèi)數(shù)小時(shí)和數(shù)千行代碼開發(fā)應(yīng)用程序不同,Streamlit 使你能夠快速構(gòu)建應(yīng)用程序來共享你的模型和分析。現(xiàn)在,創(chuàng)建一個(gè)與你的數(shù)據(jù)和模型的輸出進(jìn)行交互和可視化的 UI 簡(jiǎn)直易如反掌。

Streamlit 提供了一種從 Python 腳本跳到生產(chǎn)級(jí)應(yīng)用程序的快速方法,只需在代碼中添加幾行即可。

Streamlit 能與各種數(shù)據(jù)科學(xué)相關(guān)的工具一起工作, TensorFlow 、 Keras 、 PyTorch 、 Pandas ,凡是你能想到的,它都可以。

8. Transformers

如果你正在從事任何與機(jī)器學(xué)習(xí)相關(guān)的工作,那么你可能已經(jīng)聽說了在過去一年中圍繞自然語言處理 (NLP) 方面的重要進(jìn)展。

許多新的和高性能的模型,如 BERT 、 XLNet 或者 roBERTa ,已經(jīng)被開發(fā)出來,通過各種 NLP 任務(wù) (如文本分類、機(jī)器翻譯、命名實(shí)體識(shí)別等) 來顯著提高技術(shù)水平。

對(duì)于實(shí)踐者來說,重要的是擁有能夠使用這些模型來支撐生產(chǎn)應(yīng)用程序的工具,這些用起來并不復(fù)雜。對(duì)于研究人員來說,重要的是擁有能夠調(diào)整內(nèi)部機(jī)制的類庫,這樣就可以更輕巧地開發(fā)和試驗(yàn)新的模型,而不必浪費(fèi)太多時(shí)間編寫樣板代碼。

Hugging Face 有一幫杰出的人,他們?yōu)槲覀儙砹?transformers ,它是一個(gè)類庫,其中包括打包、預(yù)先訓(xùn)練,并已經(jīng)為使用最現(xiàn)代的 NLP 模型的實(shí)現(xiàn)做好了準(zhǔn)備。TensorFlow 2.0 和 PyTorch 之間的互操作性幫助該類庫迅速成為行業(yè)標(biāo)準(zhǔn),支撐著研究和生產(chǎn)應(yīng)用程序。它們的發(fā)展速度也非?,隨著研究人員的開發(fā),經(jīng)常有新的模型引入到這個(gè)類庫中。

蛋糕上的櫻桃: Hugging Face 團(tuán)隊(duì)開發(fā)了 DistilBERT ,它是一個(gè)體積更小、速度更快、價(jià)格更低、重量更輕的純凈版 BERT。

你還在猶豫要不要使用 Hugging Face / Transformer 以切換到現(xiàn)代的 NLP?那么擇日不如撞日,今天就是你的幸運(yùn)日,看看他們偉大的在線演示,可不要吝惜你的大姆指喲。

9. Detectron2

Facebook 的人工智能研究團(tuán)隊(duì) (FAIR) 一直在推動(dòng)計(jì)算機(jī)視覺 (CV) 的極限,他們開發(fā)了新的模型,用于像對(duì)象檢測(cè)、姿式預(yù)估、語義 / 實(shí)例劃分,以及最近的全景分割等任務(wù)。

解決這些問題的可能性就像幾年前的科幻小說一樣。我們對(duì) FAIR 抱有最好的期望,這一次他們?cè)O(shè)法再次震撼全場(chǎng)。

Detectron2 是備受期待的 Detectron 續(xù)作,它是用 PyTorch 從頭開始構(gòu)建的,裝滿了最先進(jìn)的計(jì)算機(jī)視覺算法。

這樣的類庫尤其難于進(jìn)行工程設(shè)計(jì),因?yàn)樗鼈儽仨氈С植煌愋偷挠美。就?Hugging Face 的 Transformers 一樣,費(fèi)爾團(tuán)隊(duì)也很好地完成了 Detectron2 的設(shè)計(jì),它采用了一種非常靈活和模塊化的方式,使得它非常適合 CV 的研究應(yīng)用。同時(shí),它的使用極其簡(jiǎn)單,對(duì)于那些只想快速獲得結(jié)果而不想干預(yù)內(nèi)部機(jī)制的人來說非常理想。是的,你可以使用 Detectron2,讓你的軟件只用幾行 Python 代碼就能“理解”圖像。

時(shí)間將會(huì)告訴我們,Detectron2 能否成功地營(yíng)造一個(gè)充滿活力的社區(qū),而到目前為止,情況看來很有希望。它很可能成為 CV 應(yīng)用程序的“首選”解決方案,因?yàn)樵?CV 應(yīng)用程序中,新的、更快、更好的模型是由研究人員創(chuàng)建的。如果你正在做任何類型的 CV 工作,一定要密切保持關(guān)注!

10. Metaflow

前方出現(xiàn)一個(gè)新生兒,一幅新面孔勉強(qiáng)擠進(jìn)了 2019 年的名單!但是贊成別不把它當(dāng)回事:盡管它才是在幾周前剛剛發(fā)布的,但已經(jīng)經(jīng)過了 Netflix 的內(nèi)部測(cè)試,歷經(jīng)兩年時(shí)間的改進(jìn),他們才決定開放源代碼。

Metaflow 是一個(gè) Python 類庫,用于幫助數(shù)據(jù)科學(xué)家和工程師構(gòu)建用于現(xiàn)實(shí)世界的真實(shí)項(xiàng)目。它主要專注于減輕非技術(shù)數(shù)據(jù)科學(xué)家的技術(shù)負(fù)擔(dān),例如計(jì)算資源、并行執(zhí)行、體系結(jié)構(gòu)設(shè)計(jì)和版本控制等。Netflix 與 AWS 的合作,使你能夠輕松定義復(fù)雜的數(shù)據(jù)流,同時(shí)對(duì)分布式計(jì)算提供開箱即用的支持。

我們已經(jīng)在為 Tryolabs 內(nèi)部的一些關(guān)鍵項(xiàng)目做了 Metaflow 評(píng)估。如果你有興趣更多地了解這款工具,請(qǐng)查看 Netflix 的公開博客。

總結(jié)

這一年又過去了,它為開源世界留下了非凡的貢獻(xiàn),這些貢獻(xiàn)在未來幾年仍將具有重要意義。你可以查看我們之前榜單:看看 2015 年、 2016 年、 2017 年、 2018 年來類庫的演變。

如果我們漏掉了你最喜歡的 Python 類庫,請(qǐng)?jiān)谙旅姘l(fā)表評(píng)論。我們很想聽聽你的意見。

作者介紹

Fabián Torres,全棧開發(fā)人員。電氣工程學(xué)士學(xué)位;Elias Masquil,全棧開發(fā)人員;Alan Descoins,首席技術(shù)官和合作伙伴,計(jì)算機(jī)工程學(xué)士學(xué)位;German Hoffman,全棧開發(fā)和研究工程師,計(jì)算機(jī)工程學(xué)士學(xué)位。

原文鏈接: Top 10 Python libraries of 2019

標(biāo)簽: Python

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:區(qū)塊鏈?zhǔn)欠衲艽蚱茢?shù)據(jù)交互的困境?

下一篇:AI領(lǐng)域薪酬統(tǒng)計(jì):機(jī)器學(xué)習(xí)平均近3萬,數(shù)據(jù)相關(guān)崗位增速放緩