成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用于數(shù)據(jù)科學(xué)的六種必備Python工具

譯文
開(kāi)發(fā) 后端
本文向您依次介紹了SciPy、Numba、Cython、Dask、Vaex和Intel SDC,六種可被用于大數(shù)據(jù)分析、以及機(jī)器學(xué)習(xí)項(xiàng)目的必備Python工具。

[[413842]]

【51CTO.com快譯】如果您想使用甚至掌握數(shù)據(jù)分析技能的話,Python一定是您的最佳選擇。它不但容易被學(xué)習(xí),而且具有廣泛且活躍的社區(qū)支持。目前,大多數(shù)數(shù)據(jù)科學(xué)庫(kù)、以及機(jī)器學(xué)習(xí)框架,都能夠提供Python接口。

在過(guò)去的數(shù)月中,不少用于數(shù)據(jù)科學(xué)的Python項(xiàng)目,都相繼發(fā)布了針對(duì)主要功能的更新版本。它們有些是關(guān)乎實(shí)際數(shù)字運(yùn)算;有些則是讓開(kāi)發(fā)者能夠更輕松、更快速地編寫(xiě)出針對(duì)數(shù)據(jù)科學(xué)的任務(wù)代碼。下面,讓我們來(lái)討論其中最為典型的6種Python工具。

1.SciPy1.7

由于NumPy能夠?yàn)镻ython用戶提供快速而強(qiáng)大的數(shù)學(xué)庫(kù),因此SciPy使用NumPy來(lái)為常見(jiàn)的、面向數(shù)學(xué)和數(shù)據(jù)科學(xué)的編程任務(wù)提供各種代碼庫(kù)。其中包括:線性代數(shù)、統(tǒng)計(jì)工程、以及信號(hào)處理等方面。

SciPy如何協(xié)助數(shù)據(jù)科學(xué)

作為便捷且被廣泛使用的數(shù)學(xué)和統(tǒng)計(jì)工具,SciPy長(zhǎng)期以來(lái)停留在1.0版本上。當(dāng)然,該版本具有很強(qiáng)的跨版本向后兼容性。

根據(jù)其核心開(kāi)發(fā)人員--Ralf Gommers的說(shuō)法,SciPy項(xiàng)目的1.0版不但整合了項(xiàng)目的治理和管理方式,而且包含了一個(gè)與MacOS和Windows的不同的持續(xù)集成過(guò)程,以及對(duì)預(yù)構(gòu)建的Windows二進(jìn)制文件的適當(dāng)支持。這就意味著,Windows用戶可以直接使用SciPy,而無(wú)需考慮額外的環(huán)節(jié)。

自2017年發(fā)布1.0版本以來(lái),該項(xiàng)目已經(jīng)交付了七個(gè)主要版本,它們持續(xù)在如下方面進(jìn)行改進(jìn)與優(yōu)化:

  • 放棄了對(duì)于Python 2.7的支持,跟進(jìn)了對(duì)應(yīng)的代碼庫(kù)。
  • 不斷改進(jìn)和更新SciPy的子模塊,使之具有更多的功能、更好的文檔、以及更多的新算法。例如,新的快速傅立葉變換模塊(fast Fourier transform module,)具有更好性能、以及更友好的界面。
  • 更好地支持LAPACK(Linear Algebra PACKage,線性代數(shù)包,是一個(gè)用于解決常見(jiàn)線性方程問(wèn)題的Fortran包。請(qǐng)參見(jiàn)--http://performance.netlib.org/lapack/)中的各個(gè)函數(shù)。
  • 能夠更好地兼容替代Python運(yùn)行時(shí)的PyPy(包括了一個(gè)可用于更快地長(zhǎng)期運(yùn)行代碼的JI編譯器,請(qǐng)參見(jiàn)--https://www.infoworld.com/article/3385127/what-is-pypy-faster-python-without-pain.html)。

從哪里下載SciPy

我們既可以從GitHub的鏈接處獲得源代碼,又可以從Python Package Index的鏈接處,下載SciPy的二進(jìn)制文件,然后在命令行中輸入“pip install sciPy”以完成安裝。

2.Numba 0.53.0

Numba允許通過(guò)LLVM(Low Level Virtual Machine,低級(jí)虛擬機(jī))編譯器框架,將Python函數(shù)或模塊編譯為匯編語(yǔ)言,以便隨時(shí)運(yùn)行Python程序。在此方面,Numba與Cython(不但可以被Python調(diào)用,而且能夠讓被加速的代碼更易于分發(fā)給第三方,下文會(huì)詳細(xì)討論)極其相似。當(dāng)然,Numba會(huì)更易于使用。

Numba如何協(xié)助數(shù)據(jù)科學(xué)

Numba幫助數(shù)據(jù)科學(xué)家的方式主要體現(xiàn)在,它加速了編寫(xiě)Python的各項(xiàng)操作。也就是說(shuō),您可以使用純Python,對(duì)項(xiàng)目進(jìn)行原型設(shè)計(jì),然后使用Numba對(duì)其進(jìn)行注釋?zhuān)员憧焖俚赝度肷a(chǎn)環(huán)境。

同時(shí),Numba也可以快速地運(yùn)行在那些為機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)應(yīng)用所構(gòu)建的硬件上。Numba的早期版本曾可以支持編譯出CUDA(Compute Unified Device Architecture)加速代碼。不過(guò)其最新版本則采用了新的、更為高效的GPU代碼縮減算法。它不但能夠加快編譯速度,還支持Nvidia CUDA和AMD ROCm的API。

此外,Numba還可以通過(guò)優(yōu)化JIT編譯函數(shù),以實(shí)現(xiàn)跨CPU內(nèi)核的并行執(zhí)行。當(dāng)然,您的代碼需要添加一些額外的語(yǔ)法,才能正確地完成。

從哪里下載Numba

我們既可以從GitHub的鏈接處獲得源代碼,又可以在Python Package Index的鏈接處下載Numba,然后在命令行中輸入“pip install numba”以完成安裝。其預(yù)構(gòu)建的二進(jìn)制文件可以支持Windows、MacOS、以及通用的Linux。此外,它還被當(dāng)作了Anaconda Python發(fā)行版的一部分。用戶可以在命令行中輸入“conda install numba”以完成安裝。

3.Cython3.0(beta版)

Cython是將Python代碼轉(zhuǎn)換為可以更快地運(yùn)行、大數(shù)量級(jí)的C語(yǔ)言代碼。這種轉(zhuǎn)換對(duì)于重?cái)?shù)學(xué)量(math-heavy)的代碼、或是在各種緊密循環(huán)中運(yùn)行的代碼,都非常方便。值得一提的是,這兩種情況在為工程、科學(xué)、以及機(jī)器學(xué)習(xí)編寫(xiě)的Python程序中,也是十分常見(jiàn)的。

Cython如何協(xié)助數(shù)據(jù)科學(xué)

從本質(zhì)上說(shuō),Cython代碼實(shí)際上是帶有一些額外語(yǔ)法的Python代碼。這些Python代碼不但可以被Cython編譯成C語(yǔ)言,而且能夠通過(guò)使用Cython的類(lèi)型注釋?zhuān)屍湫阅艿玫搅藥资丁⑸踔翈装俦兜母倪M(jìn)。

在Cython 3出現(xiàn)之前,Cython使用的是0.xx的版本編號(hào)方案。不過(guò),Cython 3不再支持Python 2的語(yǔ)法了。盡管Cython 3目前仍處于測(cè)試階段,但是已有Cython的擁護(hù)者強(qiáng)烈建議人們使用該版本,去代替其早期的版本。同時(shí),鑒于Cython的許多(盡管不是全部)函數(shù)都可以使用與Python完全兼容的語(yǔ)法,因此Cython 3強(qiáng)烈建議用戶更多地去使用“純Python”模式。

同時(shí),Cython還支持與IPython和Jupyter notebooks的集成。由Cython編譯的代碼,可以通過(guò)內(nèi)聯(lián)注釋的方式,在Jupyter notebooks中被使用,就像使用Python代碼一樣。

此外,您還可以在啟用了配置文件引導(dǎo)優(yōu)化(profile-guided optimization)的情況下,為Jupyter編譯Cython模塊。使用該方式構(gòu)建的模塊,可以根據(jù)其生成的分析信息,進(jìn)行各種快速的編譯和優(yōu)化。值得注意的是,該方式僅能夠在與GCC編譯器共同使用時(shí),被Cython所使用。而微軟的VC環(huán)境尚對(duì)此并不支持。

從哪里下載Cython

我們既可以從GitHub的鏈接處獲得源代碼,又可以在Python Package Index的鏈接處下載Cython,然后在命令行中輸入“pip install cython”以完成安裝。其二進(jìn)制文件可以支持包括32位和64位的Windows、通用的Linux、以及MacOS。值得注意的是,您的系統(tǒng)平臺(tái)上必須已安裝了C預(yù)言編譯器,方可使用Cython。

4.Dask 2021.07.0

近年來(lái),我們的硬件處理能力雖然比以往任何時(shí)候都強(qiáng)大,可關(guān)鍵問(wèn)題是,我們將如何通過(guò)橫跨多個(gè)CPU內(nèi)核、物理處理器、以及計(jì)算節(jié)點(diǎn)的方式,以最高效率完成數(shù)據(jù)科學(xué)的相關(guān)計(jì)算任務(wù)。

對(duì)此,Dask工具能夠接受一項(xiàng)Python作業(yè),并在多個(gè)系統(tǒng)之間有效地予以調(diào)度。由于那些被用于啟動(dòng)Dask作業(yè)的語(yǔ)法、與在Python中用于執(zhí)行其他各項(xiàng)操作的語(yǔ)法幾乎相同,因此我們?cè)谑褂肈ask時(shí),幾乎無(wú)需對(duì)現(xiàn)有的代碼進(jìn)行任何修改。

Dask如何協(xié)助數(shù)據(jù)科學(xué)

Dask能夠?yàn)镻ython中許多流行的機(jī)器學(xué)習(xí)、以及科學(xué)計(jì)算庫(kù),提供了各種自有版本的接口。例如,它的DataFrame對(duì)象能夠與Pandas庫(kù)中的相同,它的Array對(duì)象則可以與NumPy的相一致。可見(jiàn),您只需針對(duì)Dask修改幾行代碼,即可來(lái)快速兼容現(xiàn)有的代碼。

同時(shí),Dask不但允許并行地寫(xiě)入純Python的作業(yè),而且其Bag等對(duì)象類(lèi)型,也能夠優(yōu)化諸如:map、filter、以及groupby等通用Python對(duì)象集合的操作。

從哪里下載Dask

我們既可以從GitHub的鏈接處獲得源代碼,又可以在Python Package Index的鏈接處下載Cython,然后在命令行中輸入“pip install dask”以完成安裝。此外,作為Anaconda Python發(fā)行版的一部分,用戶還可以在其命令行中輸入“conda install dask”,以完成安裝。

5.Vaex 4.30

根據(jù)NumPy或Pandas的數(shù)據(jù)幀格式,Vaex允許用戶對(duì)大型表格的數(shù)據(jù)集(例如有數(shù)十億行的數(shù)據(jù)量),通過(guò)執(zhí)行l(wèi)azy操作,以零數(shù)據(jù)復(fù)制、最少的內(nèi)存使用量、以及內(nèi)置的可視化工具等方式,高效地完成各項(xiàng)操作。

Vaex如何協(xié)助數(shù)據(jù)科學(xué)

在Python中,處理大型數(shù)據(jù)集,特別是只涉及數(shù)據(jù)的某個(gè)子集(例如,表中的一列)時(shí),通常會(huì)耗費(fèi)大量的內(nèi)存、以及處理能力。而Vaex則能夠根據(jù)實(shí)際需要,以按需的方式執(zhí)行計(jì)算,從而充分地利用好有限的可用計(jì)算資源。

從哪里下載Vaex

我們可以在Python Package Index的鏈接處下載Cython,然后在命令行中輸入“pip install vaex”以完成安裝。值得注意的是,為了獲得最佳的效果,您既可以在虛擬環(huán)境中安裝Vaex,又可以直接使用Python的Anaconda發(fā)行版。

6.Intel SDC

作為高性能分析工具包,Intel的可擴(kuò)展數(shù)據(jù)幀編譯器(Scalable Dataframe Compiler,SDC)是一個(gè)針對(duì)數(shù)據(jù)分析、以及加速集群機(jī)器學(xué)習(xí)的實(shí)驗(yàn)項(xiàng)目。它使用Open MPI項(xiàng)目中的mpirun的實(shí)用程序,將Python的子集編譯為代碼。這些代碼可以在集群之間自動(dòng)實(shí)現(xiàn)并行化。

Intel SDC如何協(xié)助數(shù)據(jù)科學(xué)

作為一個(gè)使用Python編寫(xiě)的、基于編譯器的大數(shù)據(jù)框架, HPAT用到了前面提到的Numba。不過(guò)與Cython不同的是,它并不會(huì)按照原樣去編譯Python。相反,它用到了Python語(yǔ)言的受限子集:NumPy數(shù)組和Pandas數(shù)據(jù)幀,并通過(guò)對(duì)其優(yōu)化,以實(shí)現(xiàn)橫跨多個(gè)節(jié)點(diǎn)的運(yùn)行。

與Numba類(lèi)似,HPAT自帶有@jit裝飾器(decorator),可以將特定功能轉(zhuǎn)化到優(yōu)化的代碼中。此外,它還包含了一個(gè)可用于讀取和寫(xiě)入HDF5(并非HDFS)文件的本地 I/O模塊。

從哪里下載Intel SDC

我們可以從GitHub的鏈接處獲得源代碼。不過(guò)SDC并未提供對(duì)應(yīng)的二進(jìn)制文件。

原文標(biāo)題:6 essential Python tools for data science—now improved,作者:Serdar Yegulalp

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2023-11-29 20:24:45

數(shù)據(jù)可視化圖表

2023-11-06 08:15:42

遍歷列表Python

2020-06-08 16:31:28

人工智能數(shù)據(jù)科學(xué)體育

2023-02-15 16:31:08

Linux自動(dòng)化編排工具

2025-05-19 00:02:00

數(shù)據(jù)脫敏加密算法數(shù)據(jù)庫(kù)

2011-05-11 10:00:57

2011-03-31 14:53:13

數(shù)據(jù)中心節(jié)能

2021-12-08 13:20:39

Bean拷貝工具Java

2021-12-10 13:08:31

數(shù)據(jù)倉(cāng)庫(kù)BI數(shù)據(jù)存儲(chǔ)

2023-06-01 16:45:11

React開(kāi)發(fā)JavaScript

2022-01-11 18:21:11

存儲(chǔ)技術(shù)數(shù)據(jù)

2015-07-28 14:58:04

互聯(lián)網(wǎng)金融大數(shù)據(jù)

2025-06-17 08:25:00

Kubernetes集群容器

2023-09-06 08:00:00

ChatGPT數(shù)據(jù)分析

2023-08-15 15:44:55

React開(kāi)發(fā)

2018-09-04 10:24:35

網(wǎng)絡(luò)流量提取工具

2017-06-26 10:35:58

前端JavaScript繼承方式

2016-01-15 17:36:29

云計(jì)算云應(yīng)用

2011-06-07 09:36:18

2012-10-15 13:26:31

云計(jì)算架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品产国自在拍 | 国产精品99久久久久久宅男 | www成人免费视频 | 日韩欧美在 | 欧美老少妇一级特黄一片 | 欧美第一区 | 欧美三级网站 | av一区二区三区四区 | 欧美午夜精品 | 青青久草| 精品亚洲一区二区三区 | 国产91久久精品一区二区 | 欧美h视频 | 天天操精品视频 | 中文字幕一区二区三区四区五区 | 久久国产精品免费一区二区三区 | 精品91久久 | 免费看a | 免费看黄视频网站 | 国产精品18hdxxxⅹ在线 | 亚洲精色 | 成人av色| 狠狠操av | 久久久久一区二区三区四区 | 一级aaaaaa毛片免费同男同女 | 成年男女免费视频网站 | 国产在线看片 | 日韩高清中文字幕 | 婷婷综合五月天 | 欧美色综合天天久久综合精品 | 九九精品热 | 99reav| 国产色在线 | 国产一区二区三区四区五区加勒比 | 日韩国产欧美一区 | 久久成人一区 | 午夜精品一区 | www.色综合| 国产免费一区二区 | 欧美午夜精品理论片a级按摩 | 成人午夜免费福利视频 |