色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NumPy 誕生過去15年后 其核心開發團隊的論文終于在 Nature 上發表

智能感知與物聯網技術研究所 ? 來源:通信信號處理研究所 ? 作者:通信信號處理研究 ? 2020-09-21 16:25 ? 次閱讀

NumPy 是什么?它是大名鼎鼎的使用 Python 進行科學計算的基礎軟件包,是 Python 生態系統中數據分析、機器學習、科學計算的主力軍,極大簡化了向量與矩陣的操作處理。除了計算外,它還包括了:

功能強大的 N 維數組對象。

精密廣播功能函數。

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

強大的線性代數、傅立葉變換和隨機數功能

今日,NumPy 核心開發團隊的論文終于在 Nature 上發表,詳細介紹了使用 NumPy 的數組編程(Array programming)。這篇綜述論文的發表距離 NumPy 誕生已經過去了 15 年。

論文地址:https://www.nature.com/articles/s41586-020-2649-2 NumPy 官方團隊在 Twitter 上簡要概括了這篇論文的核心內容:

NumPy 為數組編程提供了簡明易懂、表達力強的高級 API,同時還考慮了維持快速運算的底層機制。 NumPy 提供的數組編程基礎和生態系統中的大量工具結合,形成了適合探索性數據分析的完美交互環境。NumPy 還包括增強與 PyTorch、Dask 和 JAX 等外部庫互操作性的協議。 基于這些特性,NumPy 為張量計算提供了標準的 API,成為 Python 中不同數組技術之間的核心協調機制。

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

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

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

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

原文標題:15年!NumPy論文終出爐,還登上了Nature

文章出處:【微信公眾號:通信信號處理研究所】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3637

    瀏覽量

    93911
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84955
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    26003

原文標題:15年!NumPy論文終出爐,還登上了Nature

文章出處:【微信號:tyutcsplab,微信公眾號:智能感知與物聯網技術研究所】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    上海交大團隊發表MEMS視觸覺融合多模態人機交互新進展

    驅動的可拉伸觸覺陣列捕捉可形變物體的力學交互)為題,國際著名期刊《Nature Communications》發表。 研究背景 觸覺感知是獲取環境信息的重要渠道之一,
    的頭像 發表于 11-28 10:50 ?1156次閱讀
    上海交大<b class='flag-5'>團隊</b><b class='flag-5'>發表</b>MEMS視觸覺融合多模態人機交互新進展

    NVIDIA ResearchECCV 2024展示多項創新成果

    米蘭舉行的歐洲計算機視覺國際會議 (ECCV) ,NVIDIA Research 展示了多項突破性的創新成果,共發表了 14 篇論文
    的頭像 發表于 11-19 15:07 ?363次閱讀

    觸覺傳感重磅《Nature》!無線、低功耗、多刺激模式觸覺電子皮膚(附原論文

    中有廣泛的應用。觸覺傳感方面,已有眾多Nature、Science子刊發表,但是Nature正刊卻仍十分稀少。 ? ? ????? 近日,美國西北大學John A. Rogers/黃
    的頭像 發表于 11-14 18:13 ?917次閱讀
    觸覺傳感重磅《<b class='flag-5'>Nature</b>》!無線、低功耗、多刺激模式觸覺電子皮膚(附原<b class='flag-5'>論文</b>)

    可編程的超快納米光子光譜像素矩陣

    日前,浙江大學光電學院何賽靈研究團隊Nature Nanotechnology》期刊在線發表了題為“Durable and programmable ultrafast nanop
    的頭像 發表于 10-09 06:30 ?269次閱讀
    可編程的超快納米光子光譜像素矩陣

    芯動力科技論文入選ISCA 2024,與國際巨頭同臺交流研究成果

    布宜諾斯艾利斯舉行的ISCA 2024會議發表演講,與Intel、AMD等國際知名企業同臺交流。 本屆ISCA共收到來自全球423篇高質量論文投稿,經過嚴謹的評審流程
    的頭像 發表于 07-18 11:16 ?643次閱讀
    芯動力科技<b class='flag-5'>論文</b>入選ISCA 2024,與國際巨頭同臺交流研究成果

    韓國研究團隊開發出新鋁合金 可降低電動汽車起火風險

    in the Advanced Metals Division)的Hyeon-woo Son博士及其研究團隊成功開發出用于電動汽車的鋁合金,這種合金具有顯著的熱穩定性,能夠有效降低電動汽車充電、放電等過程中的溫度波動
    的頭像 發表于 05-29 11:06 ?982次閱讀

    南京大學團隊首次觀測到引力子激發現象

    該科研成果已于北京時間20243月28日以“證據表明分數量子霍爾液體中有手性黑格斯模”為題在國際頂尖學術期刊Nature開發表。全球的引力子研究一直是物理學界的重大課題,證實
    的頭像 發表于 03-28 14:44 ?630次閱讀

    Artilux基于CMOS的短波紅外傳感和成像領域取得突破

    據麥姆斯咨詢報道,近日,面向CMOS短波紅外(SWIR)傳感和成像應用的GeSi(鍺硅)光子學技術領導者Artilux宣布,研究團隊推進短波紅外GeSi單光子雪崩二極管(SPAD)技術方面取得了突破,并被世界最負盛名的科學期
    的頭像 發表于 03-26 09:18 ?653次閱讀

    西安交大耿莉教授團隊國際固態電路會議展示最新芯片研究成果

    在此次會議中,中國西安交通大學微電子學院副教授樊超與合作團隊共同發表了題為“基于0.07 mm2、220到23.8 GHz、8相頻率源優化的磁+雙注入耦合設計”的論文
    的頭像 發表于 03-13 10:10 ?1183次閱讀

    基于液體積木的可重構液體器件,可用于器官芯片的構建

    據麥姆斯咨詢報道,日前,東南大學生物科學與醫學工程學院器官芯片團隊顧忠澤教授、杜鑫副研究員國際頂級期刊《Nature Chemical Engineering》
    的頭像 發表于 03-11 11:41 ?772次閱讀
    基于液體積木的可重構液體器件,可用于器官芯片的構建

    一種具有瓦級輸出功率激光驅動的寬帶近紅外光源器件

    近日,華南理工大學發光材料與器件國家重點實驗室夏志國教授團隊Nature Photonics期刊在線發表了題為“Laser-Driven
    的頭像 發表于 03-11 09:29 ?781次閱讀
    一種具有瓦級輸出功率激光驅動的寬帶近紅外光源器件

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

    郭明錤于本周二Medium發表文章,援引供應鏈調查報告指出,蘋果已削減了iPhone 15與iPhone 16所使用的核心半導體芯片的訂
    的頭像 發表于 03-06 09:29 ?901次閱讀

    基于液體積木的可重構液體器件可用于器官芯片的構建

    據麥姆斯咨詢報道,日前,東南大學生物科學與醫學工程學院器官芯片團隊顧忠澤教授、杜鑫副研究員國際頂級期刊《Nature Chemical Engineering》
    的頭像 發表于 03-04 17:29 ?781次閱讀
    基于液體積木的可重構液體器件可用于器官芯片的構建

    三星電子硅谷成立AI芯片開發團隊

    三星電子近日硅谷成立了一支全新的AI芯片開發團隊,以加速人工智能領域的布局。這支團隊由前谷歌研究員Woo Dong-hyuk領導,他
    的頭像 發表于 02-22 14:43 ?700次閱讀

    揭秘全球首創石墨烯半導體的誕生過

    當德赫爾和他的團隊弄清楚如何使用特殊熔爐碳化硅晶圓生長石墨烯時,他取得了突破。他們生產了外延石墨烯,這是碳化硅晶面上生長的單層。
    發表于 02-21 15:26 ?374次閱讀
    主站蜘蛛池模板: 久久伊人男人的天堂网站 | 国产精品AV无码免费播放 | 亚洲精品青青草原avav久久qv | 欧美成人亚洲高清在线观看 | 成a人片亚洲日本久久 | 午夜向日葵视频在线观看 | 午夜福利试看120秒体验区 | 顶级欧美不卡一区二区三区 | 男人国产AV天堂WWW麻豆 | 亚洲欧美一区二区三区导航 | 果冻传媒最新视频在线观看 | jizz国产丝袜18老师美女 | 菠萝菠萝蜜免费播放高清 | 一二三四在线观看高清电视剧 | 极品内射少妇精品无码视频 | 亚洲字幕久久 | 2018三级网站免费观看 | 俄罗斯老妇女BBXX | 强行撕开衣服捏胸黄文 | 久久九九日本韩国精品 | 四虎影视国产精品亚洲精品hd | 国产精品美女久久久网站动漫 | 欧美ZC0O人与善交的最新章节 | 国内精品人妻无码久久久影院蜜桃 | 97久久久久| 国产人妻人伦精品836700 | 护士日本xx厕所 | 国产午夜视频在线 | 国产高潮国产高潮久久久久久 | 仓井空torrent | JK白丝校花爽到娇喘视频 | 国产国产乱老熟女视频网站97 | 欧美激情一区二区三区视频 | 亚洲精品国产AV成人毛片 | 大咪咪dvd | 日本无吗高清 | 青青草在线 视频 | good神马电影伦理午夜 | 青娱乐视觉盛宴国产视频 | 港台三级大全 | 俄罗斯美女z0z0z0在线 |