0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NumPy 誕生過(guò)去15年后 其核心開(kāi)發(fā)團(tuán)隊(duì)的論文終于在 Nature 上發(fā)表

智能感知與物聯(lián)網(wǎng)技術(shù)研究所 ? 來(lái)源:通信信號(hào)處理研究所 ? 作者:通信信號(hào)處理研究 ? 2020-09-21 16:25 ? 次閱讀

NumPy 是什么?它是大名鼎鼎的使用 Python 進(jìn)行科學(xué)計(jì)算的基礎(chǔ)軟件包,是 Python 生態(tài)系統(tǒng)中數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、科學(xué)計(jì)算的主力軍,極大簡(jiǎn)化了向量與矩陣的操作處理。除了計(jì)算外,它還包括了:

功能強(qiáng)大的 N 維數(shù)組對(duì)象。

精密廣播功能函數(shù)。

集成 C/C++ 和 Fortran 代碼的工具。

強(qiáng)大的線性代數(shù)、傅立葉變換和隨機(jī)數(shù)功能

今日,NumPy 核心開(kāi)發(fā)團(tuán)隊(duì)的論文終于在 Nature 上發(fā)表,詳細(xì)介紹了使用 NumPy 的數(shù)組編程(Array programming)。這篇綜述論文的發(fā)表距離 NumPy 誕生已經(jīng)過(guò)去了 15 年。

論文地址:https://www.nature.com/articles/s41586-020-2649-2 NumPy 官方團(tuán)隊(duì)在 Twitter 上簡(jiǎn)要概括了這篇論文的核心內(nèi)容:

NumPy 為數(shù)組編程提供了簡(jiǎn)明易懂、表達(dá)力強(qiáng)的高級(jí) API,同時(shí)還考慮了維持快速運(yùn)算的底層機(jī)制。 NumPy 提供的數(shù)組編程基礎(chǔ)和生態(tài)系統(tǒng)中的大量工具結(jié)合,形成了適合探索性數(shù)據(jù)分析的完美交互環(huán)境。NumPy 還包括增強(qiáng)與 PyTorch、Dask 和 JAX 等外部庫(kù)互操作性的協(xié)議。 基于這些特性,NumPy 為張量計(jì)算提供了標(biāo)準(zhǔn)的 API,成為 Python 中不同數(shù)組技術(shù)之間的核心協(xié)調(diào)機(jī)制。

接下來(lái),我們來(lái)看這篇 NumPy 綜述論文的詳細(xì)內(nèi)容。 論文摘要 數(shù)組編程為訪問(wèn)、操縱和計(jì)算向量、矩陣和高維數(shù)組中的數(shù)據(jù)提供了功能強(qiáng)大、緊湊且表達(dá)力強(qiáng)的語(yǔ)法。NumPy 是 Python 語(yǔ)言的主要數(shù)組編程庫(kù),它在物理、化學(xué)、天文學(xué)、地球科學(xué)、生物學(xué)、心理學(xué)、材料科學(xué)、工程學(xué)、金融和經(jīng)濟(jì)學(xué)等領(lǐng)域的研究分析中都起著至關(guān)重要的作用。例如,在天文學(xué)中,NumPy 是發(fā)現(xiàn)引力波和黑洞首次成像的軟件棧中的重要部分。 這篇論文回顧了一些基本的數(shù)組概念,以及它們?nèi)绾涡纬梢环N簡(jiǎn)單而強(qiáng)大的編程范式,使其能夠用于組織、探索和分析科學(xué)數(shù)據(jù)。NumPy 是構(gòu)建科學(xué) Python 生態(tài)系統(tǒng)的基礎(chǔ)。它的應(yīng)用十分普遍,一些面向特殊需求受眾的項(xiàng)目已經(jīng)開(kāi)發(fā)出自己的類 NumPy 接口和數(shù)組對(duì)象。 由于其在 Python 生態(tài)系統(tǒng)中的核心地位,NumPy 越來(lái)越多地充當(dāng)數(shù)組計(jì)算庫(kù)之間的互操作層,并且和其 API 一起提供了靈活的框架,以支持未來(lái)十年的科學(xué)和工業(yè)分析。 NumPy 的演變史 在 NumPy 之前,已經(jīng)出現(xiàn)了兩個(gè) Python 數(shù)組包。Numeric 包開(kāi)發(fā)于 20 世紀(jì) 90 年代中期,它提供了 Python 中的數(shù)組對(duì)象和 array-aware 函數(shù)。Numeric 是用 C 語(yǔ)言寫(xiě)的,并鏈接到線性代數(shù)的標(biāo)準(zhǔn)快速實(shí)現(xiàn)。其最早的應(yīng)用之一是美國(guó)勞倫斯利弗莫爾國(guó)家實(shí)驗(yàn)室的慣性約束核聚變研究。 為了處理來(lái)自哈勃太空望遠(yuǎn)鏡的大型天文圖像,Numeric 被重實(shí)現(xiàn)為 Numarray,它添加了對(duì)結(jié)構(gòu)化數(shù)組、靈活 indexing、內(nèi)存映射、字節(jié)序變體、更高效的內(nèi)存使用以及更好的類型轉(zhuǎn)換規(guī)則的支持。 盡管 Numarray 與 Numeric 高度兼容,但這兩個(gè)包之間的差異足以將社區(qū)開(kāi)發(fā)者分為兩類。而 2005 年,NumPy 的出現(xiàn)完美地統(tǒng)一了這兩個(gè)包,它將 Numarray 的功能和 Numeric 的 small-array 性能及其豐富的 C API 結(jié)合起來(lái)。 如今,15 年過(guò)去了,NumPy 幾乎支持所有進(jìn)行科學(xué)和數(shù)值計(jì)算的 Python 庫(kù)(包括 SciPy、Matplotlib、pandas、scikit-learn 和 scikit-image)。NumPy 是一個(gè)社區(qū)開(kāi)發(fā)的開(kāi)源庫(kù),它提供了多維 Python 數(shù)組對(duì)象以及對(duì)其進(jìn)行操作的 array-aware 函數(shù)。由于其固有的簡(jiǎn)潔性,事實(shí)上 NumPy 數(shù)組已經(jīng)成為 Python 中數(shù)組數(shù)據(jù)的交換格式。 NumPy 使用 CPU 對(duì)內(nèi)存內(nèi)(in-memory)數(shù)組進(jìn)行操作。為了利用現(xiàn)代的專用存儲(chǔ)和硬件,最近已經(jīng)擴(kuò)展出一系列 Python 數(shù)組包。與 Numarray–Numeric 之間存在較大差異的情況不同,現(xiàn)在的這些新庫(kù)很難在社區(qū)開(kāi)發(fā)者中引起分歧,因?yàn)樗鼈兌际墙⒃?NumPy 之上的。但是,為了使社區(qū)能夠使用新的探索性技術(shù),NumPy 正在過(guò)渡為核心協(xié)調(diào)機(jī)制,該機(jī)制規(guī)劃了良好定義的數(shù)組編程 API,并在合適的時(shí)候?qū)⑵浞职l(fā)給專門的數(shù)組實(shí)現(xiàn)。 NumPy 數(shù)組 NumPy 數(shù)組是一種能夠高效存儲(chǔ)和訪問(wèn)多維數(shù)組的數(shù)據(jù)結(jié)構(gòu),支持廣泛類型的科學(xué)計(jì)算。NumPy 數(shù)組包括指針和用于解釋存儲(chǔ)數(shù)據(jù)的元數(shù)據(jù),即 data type(數(shù)據(jù)類型)、shape(形狀)和 strides(步幅),參見(jiàn)下圖 1a。

圖 1:NumPy 數(shù)組包括多種基礎(chǔ)數(shù)組概念。 數(shù)據(jù)類型描述了數(shù)組中存儲(chǔ)元素的本質(zhì)。一個(gè)數(shù)組只有一個(gè)數(shù)據(jù)類型,數(shù)組中的每個(gè)元素在內(nèi)存中占用的字節(jié)數(shù)是一樣的。數(shù)據(jù)類型包括實(shí)數(shù)、復(fù)數(shù)、字符串、timestamp 和指針等。 數(shù)組的形狀決定了每個(gè)軸上的元素?cái)?shù)量,軸的數(shù)量即為數(shù)組的維數(shù)。例如,數(shù)字向量可存儲(chǔ)為形狀為 N 的一維數(shù)組,而彩色視頻是形狀為 (T, M, N, 3) 的四維數(shù)組。 步幅是解釋計(jì)算機(jī)內(nèi)存的必要組件,它可以線性地存儲(chǔ)元素。步幅描述了在內(nèi)存中逐行逐列移動(dòng)時(shí)所需的字節(jié)數(shù)。例如,形狀為 (4, 3) 的二維浮點(diǎn)數(shù)數(shù)組,它其中的每個(gè)元素均在內(nèi)存中占用 8 個(gè)字節(jié)數(shù)。要想在連續(xù)列之間移動(dòng),我們需要在內(nèi)存中前進(jìn) 8 個(gè)字節(jié)數(shù),要想到達(dá)下一行,則需要前進(jìn) 3 × 8 = 24 個(gè)字節(jié)數(shù)。因此該數(shù)組的步幅為 (24, 8)。NumPy 可以用 C 或 Fortran 的內(nèi)存順序存儲(chǔ)數(shù)組,沿著行或列遍歷。這使得使用這些語(yǔ)言寫(xiě)的外部庫(kù)可以直接訪問(wèn)內(nèi)存中的 NumPy 數(shù)組數(shù)據(jù)。 用戶使用「indexing」(訪問(wèn)子數(shù)組或單個(gè)元素)、「operators」(各種運(yùn)算符)和「array-aware function」與 NumPy 數(shù)組進(jìn)行交互。它們?yōu)?NumPy 數(shù)組編程提供了簡(jiǎn)明易懂、表達(dá)力強(qiáng)的高級(jí) API,同時(shí)還考慮了維持快速運(yùn)算的底層機(jī)制。 對(duì)數(shù)組執(zhí)行 indexing 將返回單個(gè)元素、子數(shù)組或滿足特定條件的元素(參見(jiàn)上圖 1b)。數(shù)組甚至還可以用其他數(shù)組進(jìn)行 indexing(參加圖 1c)。返回子數(shù)組的 indexing 還可以返回原始數(shù)組的「view」,以便在兩個(gè)數(shù)組之間共享數(shù)據(jù)。這就為內(nèi)存有限的情況下基于數(shù)組數(shù)據(jù)子集進(jìn)行運(yùn)算提供了一種強(qiáng)大的方式。 為了補(bǔ)充數(shù)組語(yǔ)法,NumPy 還包括對(duì)數(shù)組執(zhí)行向量化計(jì)算的函數(shù),包括 arithmetic、statistics 和 trigonometry(參見(jiàn)圖 1d)。向量化計(jì)算基于整個(gè)數(shù)組運(yùn)行而不是其中的單個(gè)元素,這對(duì)于數(shù)組編程而言是必要的。這意味著,在 C 等語(yǔ)言中需要幾十行才能表達(dá)的運(yùn)算在這里只需一個(gè)清晰的 Python 表達(dá)式即可實(shí)現(xiàn)。這就帶來(lái)了簡(jiǎn)潔的代碼,并使得用戶不必關(guān)注分析細(xì)節(jié),同時(shí) NumPy 以接近最優(yōu)的方式循環(huán)遍歷數(shù)組元素。 對(duì)兩個(gè)形狀相同的數(shù)組執(zhí)行向量化計(jì)算(如加法)時(shí),接下來(lái)會(huì)發(fā)生什么是很明確的。而「broadcasting」機(jī)制允許 NumPy 處理維度不同的數(shù)組之間的運(yùn)算,例如向數(shù)組添加一個(gè)標(biāo)量值。broadcasting 還能泛化至更復(fù)雜的示例,如縮放數(shù)組的每一列或生成坐標(biāo)網(wǎng)格。在 broadcasting 中,單個(gè)或兩個(gè)數(shù)組可以重疊(沒(méi)有從內(nèi)存中復(fù)制任何數(shù)據(jù)),使得 operands 的形狀匹配(參見(jiàn)圖 1d)。 其他 array-aware function(如加、求平均值、求最大值)都是執(zhí)行逐元素的「reduction」,累積單個(gè)數(shù)組的一個(gè)、多個(gè)或所有軸上的結(jié)果。例如,將一個(gè) n 維數(shù)組與 d 個(gè)軸進(jìn)行累加,得到維度為 n ? d 的數(shù)組(參見(jiàn)圖 1f)。 NumPy 還包含可以創(chuàng)建、reshaping、concatenating 和 padding 數(shù)組,執(zhí)行數(shù)據(jù)排序和計(jì)數(shù),讀取和寫(xiě)入文件的 array-aware function。這為生成偽隨機(jī)數(shù)提供了大量支持,它還可以使用 OpenBLAS 或 Intel MKL 等后端執(zhí)行加速線性代數(shù)。 總之,內(nèi)存內(nèi)的數(shù)組表示、緊密貼近數(shù)學(xué)的語(yǔ)法和多種 array-aware function 共同構(gòu)成了生產(chǎn)力強(qiáng)、表達(dá)力強(qiáng)的數(shù)組編程語(yǔ)言。 科學(xué) Python 生態(tài)系統(tǒng) Python 是一個(gè)開(kāi)源、通用的解釋型編程語(yǔ)言,非常適合數(shù)據(jù)清洗、與 web 資源交互和解析文本之類的標(biāo)準(zhǔn)編程任務(wù)。添加快速數(shù)組操作和線性代數(shù)能夠讓科學(xué)家在一種編程語(yǔ)言中完成所有的工作。 盡管 NumPy 不是 Python 標(biāo)準(zhǔn)庫(kù)的一部分,但它也從與 Python 開(kāi)發(fā)者的良好關(guān)系中受益。在過(guò)去這些年中,Python 語(yǔ)言已經(jīng)加入了一些新的功能和特殊的語(yǔ)法,以便 NumPy 具備更加簡(jiǎn)潔和易于閱讀的數(shù)組表示法。但是,由于 NumPy 不是 Python 標(biāo)準(zhǔn)庫(kù)的一部分,所以它能夠規(guī)定自己的發(fā)布策略和開(kāi)發(fā)模式。 從發(fā)展史、開(kāi)發(fā)和應(yīng)用的角度來(lái)看,SciPy 和 Matplotlib 與 NumPy 聯(lián)系緊密。SciPy 為科學(xué)計(jì)算提供了基礎(chǔ)算法,包括數(shù)學(xué)、科學(xué)和工程程序。Matplotlib 生成可發(fā)表品質(zhì)的圖表和可視化文件。NumPy、SciPy 和 Matplotlib 的結(jié)合,再加上 IPython、Jupyter 這類高級(jí)交互環(huán)境,為 Python 中的數(shù)組編程提供了堅(jiān)實(shí)的基礎(chǔ)。 如圖 2 所示,科學(xué) Python 生態(tài)系統(tǒng)建立在上述基礎(chǔ)之上,它提供了多種廣泛應(yīng)用的專有技術(shù)庫(kù),而這又是眾多領(lǐng)域特定項(xiàng)目的基礎(chǔ)。NumPy 是這一 array-aware 庫(kù)生態(tài)系統(tǒng)的基礎(chǔ),它設(shè)置了文檔標(biāo)準(zhǔn)、提供了數(shù)組測(cè)試基礎(chǔ)結(jié)構(gòu),并增加了對(duì) Fortran 等編譯器的構(gòu)建支持。

圖 2:NumPy 是科學(xué) Python 生態(tài)系統(tǒng)的基礎(chǔ)。 很多研究團(tuán)隊(duì)設(shè)計(jì)出大型、復(fù)雜的科學(xué)庫(kù),這些庫(kù)為 Python 生態(tài)系統(tǒng)增添了特定于具體應(yīng)用的功能。例如,由事件視界望遠(yuǎn)鏡(Event Horizon Telescope, EHT)合作項(xiàng)目開(kāi)發(fā)的 eht-imaging 庫(kù)依賴科學(xué) Python 生態(tài)系統(tǒng)的很多低級(jí)組件。而 EHT 合作項(xiàng)目利用該庫(kù)捕獲了黑洞的首張圖像。 在 eht-imaging 庫(kù)中,NumPy 數(shù)組在流程鏈的每一步存儲(chǔ)和操縱數(shù)值數(shù)據(jù)。 基于數(shù)組編程創(chuàng)建的交互式環(huán)境及其周邊的工具生態(tài)系統(tǒng)(IPython 或 Jupyter 內(nèi)部)完美適用于探索性數(shù)據(jù)分析。用戶可以流暢地檢查、操縱和可視化他們的數(shù)據(jù),并快速迭代以改善編程語(yǔ)句。然后,將這些語(yǔ)句拼接入命令式或函數(shù)式程序,或包含計(jì)算和敘述的 notebook。 超出探索性研究的科學(xué)計(jì)算通常在文本編輯器或 Spyder 等集成開(kāi)發(fā)環(huán)境(IDE)中完成。這一豐富和高產(chǎn)的環(huán)境使 Python 在科學(xué)研究界流行開(kāi)來(lái)。 為了給探索性研究和快速原型提供補(bǔ)充支持,NumPy 形成了使用經(jīng)過(guò)時(shí)間檢驗(yàn)的軟件工程實(shí)踐來(lái)提升協(xié)作、減少誤差的文化。這種文化不僅獲得了項(xiàng)目領(lǐng)導(dǎo)者的采納,而且還被傳授給初學(xué)者。NumPy 團(tuán)隊(duì)很早就采用分布式版本控制和代碼審查機(jī)制來(lái)改善代碼協(xié)同,并使用持續(xù)測(cè)試對(duì) NumPy 的每個(gè)提議更改運(yùn)行大量自動(dòng)化測(cè)試。 這種使用最佳實(shí)踐來(lái)制作可信賴科學(xué)軟件的文化已經(jīng)被基于 NumPy 構(gòu)建的生態(tài)系統(tǒng)所采用。例如,在近期英國(guó)皇家天文學(xué)會(huì)授予 Astropy 的一項(xiàng)獎(jiǎng)項(xiàng)中表示:「Astropy 項(xiàng)目為數(shù)百名初級(jí)科學(xué)家提供了專業(yè)水平的軟件開(kāi)發(fā)實(shí)踐,包括版本控制使用、單元測(cè)試、代碼審查和問(wèn)題追蹤程序等。這對(duì)于現(xiàn)代研究人員而言是一項(xiàng)重要的技能組合,但物理或天文學(xué)專業(yè)的正規(guī)大學(xué)教育卻常常忽略這一點(diǎn)。」社區(qū)成員通過(guò)課程和研討會(huì)來(lái)彌補(bǔ)正規(guī)教育中的這一缺失。 近來(lái)數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和人工智能的快速發(fā)展進(jìn)一步大幅提升了 Python 的科學(xué)使用。Python 的重要應(yīng)用,如 eht-imaging 庫(kù),現(xiàn)已存在于自然和社會(huì)科學(xué)的幾乎每個(gè)學(xué)科之中。這些工具已經(jīng)成為很多領(lǐng)域主要的軟件環(huán)境。大學(xué)課程、新手培訓(xùn)營(yíng)和暑期班通常教授 NumPy 及其生態(tài)系統(tǒng),它們也成為世界各地社區(qū)會(huì)議和研討會(huì)的焦點(diǎn)。NumPy 和它的 API 已經(jīng)無(wú)處不在了。 數(shù)組激增和互操作性 NumPy 在 CPU 上提供了內(nèi)存內(nèi)、多維和均勻鍵入(即單一指向和跨步的)的數(shù)組。NumPy 可以在嵌入式設(shè)備和世界上最大的超級(jí)計(jì)算機(jī)等機(jī)器上運(yùn)行,其性能接近編譯語(yǔ)言。在大多數(shù)情況下,NumPy 解決了絕大部分的數(shù)組計(jì)算用例。 但是現(xiàn)在,科學(xué)數(shù)據(jù)集通常超出單個(gè)機(jī)器的存儲(chǔ)容量,并且可以在多個(gè)機(jī)器或云上存儲(chǔ)。此外,近來(lái)深度學(xué)習(xí)和人工智能應(yīng)用的加速需求已經(jīng)促生了專用加速器硬件,包括 GPU、TPU 和 FPGA。目前,由于 NumPy 具有的內(nèi)存內(nèi)數(shù)據(jù)模型,它無(wú)法直接使用這類存儲(chǔ)和專用硬件。 然而,GPU、TPU 和 FPGA 的分布式數(shù)據(jù)和并行執(zhí)行能夠很好地映射到數(shù)組編程范式,所以可用的現(xiàn)代硬件架構(gòu)與利用它們的計(jì)算能力所必需的工具之間存在著差距。 社區(qū)為彌補(bǔ)這一差距做出的努力使得新的數(shù)組實(shí)現(xiàn)激增。例如,每個(gè)深度學(xué)習(xí)框架都創(chuàng)建了自己的數(shù)組。PyTorch、TensorFlow、Apache MXNet 和 JAX 數(shù)組都有能力以分布式方式在 CPU 和 GPU 上運(yùn)行,其中使用惰性計(jì)算(lazy evaluation)實(shí)現(xiàn)額外性能優(yōu)化。SciPy 和 PyData/Sparse 都提供有稀疏數(shù)組,這些數(shù)組通常包含很少的非零值,并只在內(nèi)存中存儲(chǔ)以提升效率。 此外,還有一些項(xiàng)目在 NumPy 數(shù)組上構(gòu)建作為數(shù)據(jù)容器,并擴(kuò)展相應(yīng)功能。Dask 通過(guò)這種方式使分布式數(shù)組成為可能,而標(biāo)記數(shù)組是通過(guò) xarray 實(shí)現(xiàn)的。 這類庫(kù)常常模仿 NumPy API,以降低初學(xué)者準(zhǔn)入門檻,并為更廣泛的社區(qū)提供穩(wěn)定的數(shù)組編程接口。這反過(guò)來(lái)也會(huì)阻止一些破壞性分立(disruptive schism),如 Numeric 和 Numarray 之間的差異。 但是探索使用數(shù)組的新方法從本質(zhì)上講是試驗(yàn)性的,事實(shí)上,Theano 和 Caffe 等一些有前途的庫(kù)已經(jīng)停止了開(kāi)發(fā)。每當(dāng)用戶決定嘗試一項(xiàng)新技術(shù)時(shí),他們必須更改 import 語(yǔ)句,并確保新庫(kù)能夠?qū)崿F(xiàn)他們當(dāng)前使用的所有 NumPy API 部件。 在理想狀態(tài)下,用戶可以通過(guò) NumPy 函數(shù)或語(yǔ)義在專用數(shù)組上進(jìn)行操作,這樣他們可以編寫(xiě)一次代碼,然后從 NumPy 數(shù)組、GPU 數(shù)組、分布式數(shù)組以及其他數(shù)組之間的切換中獲益。為了支持外部數(shù)組對(duì)象之間的數(shù)組操作,NumPy 增加了一項(xiàng)充當(dāng)核心協(xié)調(diào)機(jī)制的功能,并提供指定的 API,具體如上圖 2 所示。 為了促進(jìn)這種互操作性,NumPy 提供了允許專用數(shù)組傳遞給 NumPy 函數(shù)的「協(xié)議」,具體如下圖 3 所示。反過(guò)來(lái),NumPy 根據(jù)需要將操作分派給原始庫(kù)。超過(guò) 400 個(gè)最流行的 NumPy 函數(shù)得到了支持。該協(xié)議通過(guò) Dask、CuPy、xarray 和 PyData/Sparse 等廣泛使用的庫(kù)來(lái)實(shí)現(xiàn)。 得益于這些進(jìn)展,用戶現(xiàn)在可以使用 Dask 將自己的計(jì)算從單個(gè)機(jī)器擴(kuò)展至多個(gè)系統(tǒng)。該協(xié)議允許用戶通過(guò) Dask 數(shù)組中嵌入的 CuPy 數(shù)組等,在分布式多 GPU 系統(tǒng)上大規(guī)模地重新部署 NumPy 代碼。 使用 NumPy 的高級(jí) API,用戶可以在具有數(shù)百萬(wàn)個(gè)核的多系統(tǒng)上利用高度并行化的代碼執(zhí)行,并且需要的代碼更改最少。 如下圖 3 所示,NumPy 的 API 和數(shù)組協(xié)議向生態(tài)系統(tǒng)提供了新的數(shù)組:

現(xiàn)在,這些數(shù)組協(xié)議是 NumPy 的主要特征,它們的重要性預(yù)計(jì)也會(huì)越來(lái)越大。NumPy 開(kāi)發(fā)者(很多也是這篇文章的作者)迭代地改善和增加協(xié)議設(shè)計(jì),以改進(jìn)實(shí)用性和簡(jiǎn)化應(yīng)用方式。 論文最后對(duì) NumPy 的現(xiàn)狀和未來(lái)進(jìn)行了總結(jié)和展望: 在未來(lái)十年中,NumPy 開(kāi)發(fā)者將面臨多項(xiàng)挑戰(zhàn)。新設(shè)備將出現(xiàn),現(xiàn)有的專用硬件將面臨摩爾定律的收益遞減,數(shù)據(jù)科學(xué)從業(yè)者將越來(lái)越多,類型也更加廣泛。而他們中的大部分將使用 NumPy。 隨著光片顯微鏡和大型綜合巡天望遠(yuǎn)鏡(LSST)等設(shè)備和儀器的采用,科學(xué)數(shù)據(jù)的規(guī)模將持續(xù)擴(kuò)大。新一代語(yǔ)言、解釋器和編譯器,如 Rust、Julia 和 LLVM,將創(chuàng)造出新的概念和數(shù)據(jù)結(jié)構(gòu)。

原文標(biāo)題:15年!NumPy論文終出爐,還登上了Nature

文章出處:【微信公眾號(hào):通信信號(hào)處理研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3521

    瀏覽量

    93266
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84073
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    411

    瀏覽量

    25821

原文標(biāo)題:15年!NumPy論文終出爐,還登上了Nature

文章出處:【微信號(hào):tyutcsplab,微信公眾號(hào):智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    韓國(guó)研究團(tuán)隊(duì)開(kāi)發(fā)出新鋁合金 可降低電動(dòng)汽車起火風(fēng)險(xiǎn)

    in the Advanced Metals Division)的Hyeon-woo Son博士及其研究團(tuán)隊(duì)成功開(kāi)發(fā)出用于電動(dòng)汽車的鋁合金,這種合金具有顯著的熱穩(wěn)定性,能夠有效降低電動(dòng)汽車充電、放電等過(guò)程中的溫度波動(dòng)
    的頭像 發(fā)表于 05-29 11:06 ?831次閱讀

    南京大學(xué)團(tuán)隊(duì)首次觀測(cè)到引力子激發(fā)現(xiàn)象

    該科研成果已于北京時(shí)間20243月28日以“證據(jù)表明分?jǐn)?shù)量子霍爾液體中有手性黑格斯?!睘轭}在國(guó)際頂尖學(xué)術(shù)期刊Nature開(kāi)發(fā)表。全球的引力子研究一直是物理學(xué)界的重大課題,證實(shí)
    的頭像 發(fā)表于 03-28 14:44 ?472次閱讀

    基于液體積木的可重構(gòu)液體器件,可用于器官芯片的構(gòu)建

    據(jù)麥姆斯咨詢報(bào)道,日前,東南大學(xué)生物科學(xué)與醫(yī)學(xué)工程學(xué)院器官芯片團(tuán)隊(duì)顧忠澤教授、杜鑫副研究員國(guó)際頂級(jí)期刊《Nature Chemical Engineering》
    的頭像 發(fā)表于 03-11 11:41 ?562次閱讀
    基于液體積木的可重構(gòu)液體器件,可用于器官芯片的構(gòu)建

    一種具有瓦級(jí)輸出功率激光驅(qū)動(dòng)的寬帶近紅外光源器件

    近日,華南理工大學(xué)發(fā)光材料與器件國(guó)家重點(diǎn)實(shí)驗(yàn)室夏志國(guó)教授團(tuán)隊(duì)Nature Photonics期刊在線發(fā)表了題為“Laser-Driven
    的頭像 發(fā)表于 03-11 09:29 ?542次閱讀
    一種具有瓦級(jí)輸出功率激光驅(qū)動(dòng)的寬帶近紅外光源器件

    iPhone銷量下滑,2024同比減少15%

    郭明錤于本周二Medium發(fā)表文章,援引供應(yīng)鏈調(diào)查報(bào)告指出,蘋果已削減了iPhone 15與iPhone 16所使用的核心半導(dǎo)體芯片的訂
    的頭像 發(fā)表于 03-06 09:29 ?528次閱讀

    基于液體積木的可重構(gòu)液體器件可用于器官芯片的構(gòu)建

    據(jù)麥姆斯咨詢報(bào)道,日前,東南大學(xué)生物科學(xué)與醫(yī)學(xué)工程學(xué)院器官芯片團(tuán)隊(duì)顧忠澤教授、杜鑫副研究員國(guó)際頂級(jí)期刊《Nature Chemical Engineering》
    的頭像 發(fā)表于 03-04 17:29 ?613次閱讀
    基于液體積木的可重構(gòu)液體器件可用于器官芯片的構(gòu)建

    三星電子硅谷成立AI芯片開(kāi)發(fā)團(tuán)隊(duì)

    三星電子近日硅谷成立了一支全新的AI芯片開(kāi)發(fā)團(tuán)隊(duì),以加速人工智能領(lǐng)域的布局。這支團(tuán)隊(duì)由前谷歌研究員Woo Dong-hyuk領(lǐng)導(dǎo),他
    的頭像 發(fā)表于 02-22 14:43 ?510次閱讀

    揭秘全球首創(chuàng)石墨烯半導(dǎo)體的誕生過(guò)

    當(dāng)?shù)潞諣柡退?b class='flag-5'>團(tuán)隊(duì)弄清楚如何使用特殊熔爐碳化硅晶圓生長(zhǎng)石墨烯時(shí),他取得了突破。他們生產(chǎn)了外延石墨烯,這是碳化硅晶面上生長(zhǎng)的單層。
    發(fā)表于 02-21 15:26 ?211次閱讀

    韓國(guó)科學(xué)技術(shù)院開(kāi)發(fā)Micro LED選擇性轉(zhuǎn)移印刷技術(shù)

    12月19日消息,近日韓國(guó)科學(xué)技術(shù)院(KAIST)Keon Jae Lee教授領(lǐng)導(dǎo)的研究團(tuán)隊(duì)《自然》(Nature)雜志發(fā)表了一篇題為“
    的頭像 發(fā)表于 12-26 13:31 ?542次閱讀
    韓國(guó)科學(xué)技術(shù)院<b class='flag-5'>開(kāi)發(fā)</b>Micro LED選擇性轉(zhuǎn)移印刷技術(shù)

    再登Nature!DeepMind大模型突破60數(shù)學(xué)難題,解法超出人類已有認(rèn)知

    (Function)一詞的簡(jiǎn)寫(xiě)。 利用大模型解決長(zhǎng)期存在的科學(xué)難題,產(chǎn)生 以前不存在 的 可驗(yàn)證 且 有價(jià)值* 的新信息。 Nature論文配套的新聞解讀中,DeepMind負(fù)責(zé)人稱“我們使用大模型
    的頭像 發(fā)表于 12-24 21:40 ?456次閱讀
    再登<b class='flag-5'>Nature</b>!DeepMind大模型突破60<b class='flag-5'>年</b>數(shù)學(xué)難題,解法超出人類已有認(rèn)知

    韓國(guó)研究團(tuán)隊(duì)開(kāi)發(fā)了一種石墨烯層生長(zhǎng)柔性GaN LED陣列的方法

    外媒消息,韓國(guó)首爾國(guó)立大學(xué)與成均館大學(xué)的研究團(tuán)隊(duì)聯(lián)合開(kāi)發(fā)了一種石墨烯層生長(zhǎng)柔性GaN LED陣列的方法,通過(guò)該技術(shù)研究團(tuán)隊(duì)生長(zhǎng)出了LED
    的頭像 發(fā)表于 12-18 10:07 ?788次閱讀

    AI + 數(shù)字醫(yī)療 &gt;= 醫(yī)生?

    ,如果那時(shí)與機(jī)器人醫(yī)生一起面試找工作或成為同事是多么讓人“興奮”的一件事。 其實(shí)早在2017,斯坦福大學(xué) 的研究團(tuán)隊(duì)就在全球頂級(jí)科學(xué)雜志《Nature
    的頭像 發(fā)表于 12-06 08:05 ?332次閱讀
    AI + 數(shù)字醫(yī)療 &gt;= 醫(yī)生?

    List和Numpy Array有什么區(qū)別

    Numpy 是Python科學(xué)計(jì)算的一個(gè)核心模塊。它提供了非常高效的數(shù)組對(duì)象,以及用于處理這些數(shù)組對(duì)象的工具。一個(gè)Numpy數(shù)組由許多值組成,所有值的類型是相同的。 Python的核心
    的頭像 發(fā)表于 10-30 10:49 ?649次閱讀
    List和<b class='flag-5'>Numpy</b> Array有什么區(qū)別

    清華大學(xué)團(tuán)隊(duì)超高性能計(jì)算芯片領(lǐng)域取得新突破

    清華大學(xué)團(tuán)隊(duì)超高性能計(jì)算芯片領(lǐng)域取得新突破,相關(guān)研究發(fā)表Nature
    的頭像 發(fā)表于 10-29 09:20 ?893次閱讀
    清華大學(xué)<b class='flag-5'>團(tuán)隊(duì)</b><b class='flag-5'>在</b>超高性能計(jì)算芯片領(lǐng)域取得新突破

    《天貓精靈誕生記——如何在互聯(lián)網(wǎng)公司做硬件》+ 理論結(jié)合實(shí)踐-難得的介紹硬件產(chǎn)品開(kāi)發(fā)的好書(shū)(五星推薦)

    非常豐富,但是又都有立足點(diǎn),都來(lái)源于實(shí)踐分享,所以非常難能可貴。 一直認(rèn)為互聯(lián)網(wǎng)公司做硬件,肯定不是為了做硬件,而是要為云生態(tài)提供接入點(diǎn),但是比較好奇為什么不外包,而是自己團(tuán)隊(duì)開(kāi)發(fā),直到看到書(shū)中內(nèi)容才
    發(fā)表于 10-11 22:26