軟件包也能發(fā)《Nature》正刊

2020年9月16日,開源科學(xué)計(jì)算庫(kù)NumPy核心團(tuán)隊(duì)的論文《Array programming with NumPy》發(fā)在了頂級(jí)期刊《Nature》的正刊上。
此次發(fā)表的論文《Array programming with NumPy》,詳細(xì)介紹了使用NumPy 的數(shù)組編程(Array programming)。論文覆蓋NumPy 的演變史、NumPy 數(shù)組、科學(xué) Python 科研工具體系等內(nèi)容。
■??什么是NumPy?
NumPy是使用Python進(jìn)行科學(xué)計(jì)算的基礎(chǔ)軟件包,NumPy這個(gè)詞來(lái)源于兩個(gè)單詞Numerical和Python。NumPy提供了大量的庫(kù)函數(shù)和操作,可以幫助程序員輕松地進(jìn)行數(shù)值計(jì)算。
NumPy數(shù)值計(jì)算廣泛用于以下任務(wù):
機(jī)器學(xué)習(xí)模型:NumPy的庫(kù),用于簡(jiǎn)單(在編寫代碼方面)和快速(在速度方面)計(jì)算。
圖像處理和計(jì)算機(jī)圖形學(xué):計(jì)算機(jī)中的圖像表示為多維數(shù)字?jǐn)?shù)組。NumPy提供了一些優(yōu)秀的庫(kù)函數(shù)來(lái)快速處理圖像。
數(shù)學(xué)任務(wù):NumPy對(duì)于執(zhí)行數(shù)值積分、微分等數(shù)學(xué)任務(wù)非常有用,形成了一種基于Python的MATLAB的快速替代。
NumPy在物理、化學(xué)、天文學(xué)、地球科學(xué)、生物學(xué)、心理學(xué)、材料科學(xué)、工程,金融和經(jīng)濟(jì)學(xué)等領(lǐng)域的研究分析流程中發(fā)揮著至關(guān)重要的作用。
例如在天文學(xué)中,NumPy是用于發(fā)現(xiàn)引力波和首次對(duì)黑洞成像的軟件工具的重要組成部分。

計(jì)算機(jī)科學(xué)家凱蒂·布曼(Katie Bouman),是哈佛大學(xué)史密森天體物理學(xué)中心的博士后研究員。2016年,她開發(fā)了一種允許研究人員拍攝世界上第一個(gè)黑洞圖像的計(jì)算機(jī)算法,用于篩選從世界各地的望遠(yuǎn)鏡的數(shù)據(jù)以創(chuàng)建圖像。
4PB數(shù)據(jù)量包含在重達(dá)幾百公斤的計(jì)算機(jī)硬盤驅(qū)動(dòng)器中,這些硬盤必須物理傳輸?shù)今R薩諸塞州韋斯特福德市的海斯塔克天文臺(tái),該觀測(cè)站由麻省理工學(xué)院(MIT)提供技術(shù)支持。
歷經(jīng)2年多的數(shù)據(jù)分析,科學(xué)家終于揭開了黑洞真容。

■??黑洞
“黑洞”是指空間中的一個(gè)點(diǎn),物質(zhì)受到如此強(qiáng)烈的壓縮,以至于它產(chǎn)生了引力場(chǎng),甚至光線也無(wú)法從中逃逸。在2019年4月10日發(fā)布的照片中,巨大的黑洞位于一個(gè)名為M87的銀河系中心,距離我們有5500萬(wàn)光年。

圍繞NumPy,整個(gè)Python科研工具體系得以建立。在它的基礎(chǔ)之上, 產(chǎn)生了技術(shù)導(dǎo)向、領(lǐng)域?qū)蛞约皯?yīng)用導(dǎo)向的大量?jī)?yōu)秀科研軟件工具。
NumPy為主題的文章能在Nature上發(fā)表,體現(xiàn)了科學(xué)界對(duì)基礎(chǔ)軟件研發(fā)的尊重與認(rèn)可,NumPy已經(jīng)成為科研基礎(chǔ)設(shè)施的重要組件,其意義與價(jià)值并不亞于任何一個(gè)實(shí)體科研裝置。
回顧它25年的歷史,有多個(gè)要素為其提供了源源不斷的發(fā)展動(dòng)力:
1. 開放與協(xié)作的生態(tài)
開放首先體現(xiàn)在NumPy是開源軟件,一方面世界各地的用戶都可以免費(fèi)使用,沒(méi)有使用門檻,另一方面任何一位開發(fā)人員都可以為項(xiàng)目作出貢獻(xiàn),很多開發(fā)人員是NumPy的直接使用者,有持續(xù)改進(jìn)、提升軟件的動(dòng)力;NumPy不是個(gè)孤立的項(xiàng)目,它和Matplotlib、SciPy等軟件包以及Python語(yǔ)言形成了互補(bǔ)的軟件生態(tài),實(shí)現(xiàn)了共同發(fā)展,單個(gè)項(xiàng)目的價(jià)值得以充分體現(xiàn);另外NumPy從一開始就被用于哈勃望遠(yuǎn)鏡等前沿科研項(xiàng)目,與應(yīng)用場(chǎng)景緊密結(jié)合,助力科研的同時(shí),項(xiàng)目也得以飛速發(fā)展
2. 面向未來(lái)的架構(gòu)設(shè)計(jì)
在過(guò)去25年內(nèi),數(shù)據(jù)規(guī)模大幅度擴(kuò)大,實(shí)現(xiàn)了幾個(gè)數(shù)據(jù)級(jí)的增長(zhǎng),計(jì)算架構(gòu)發(fā)生了變遷,高性能計(jì)算由CPU轉(zhuǎn)向GPU,NumPy都經(jīng)受住了考驗(yàn)
3. 持續(xù)的提升與維護(hù)
很多科研軟件的有效發(fā)展周期不超過(guò)5年,隨著支持項(xiàng)目結(jié)題、或者主要開發(fā)人員更換單位,軟件的發(fā)展往往就中斷了;而NumPy通過(guò)開發(fā)社群經(jīng)年累月的提升,非但沒(méi)有落后,反而獲得了更強(qiáng)的生命力
在科學(xué)研究領(lǐng)域勇攀高峰,不能重硬輕軟。做好科研也需要兩只手,一個(gè)是更容易被看到和宣傳的各類科學(xué)裝置;另一個(gè)是類似NumPy這樣的不容易被注意到的幕后功臣。加強(qiáng)科研軟件的研發(fā)是達(dá)到世界領(lǐng)先水準(zhǔn)的必由之路。
參考:
Charles R. Harris et al., Nature 2020,Array programming with NumPy
https://www.runoob.com/NumPy/NumPy-tutorial.html
https://www.jiqizhixin.com/articles/2020-09-17-13
https://www.NumPy.org.cn/
https://NumPy.org/
https://english.alarabiya.net/en/variety/2019/04/12/Scientist-superstar-Katie-Bouman-designed-algorithm-for-black-hole-image