SciPy是一個開源Python演算法庫和數學工具包。SciPy包含的模組有最佳化線性代數積分插值特殊函數快速傅立葉轉換訊號處理圖像處理常微分方程求解和其他科學與工程中常用的計算。

SciPy
繪製貝索函數並尋找其局部極大值的範例。
原作者Travis Oliphant英語Travis Oliphant, Pearu Peterson, Eric Jones
開發者社區專案
首次釋出約2001年
目前版本1.14.1[1]在維基數據編輯(2024年8月21日,2個月前)
原始碼庫 編輯維基數據連結
作業系統跨平台
類型數學軟件
特許條款BSD特許條款
網站http://www.scipy.org/

SciPy目前在BSD特許條款下釋出。它的開發最初由Enthought英語Enthought資助。與其功能相類似的軟件還有MATLABGNU OctaveScilab

組成

SciPy工具包是Python科學計算的核心,其功能根據功能分成如下子包:

早先版本中的weave(編織)模組,用於在Python代碼中包含C/C++代碼的工具,現已棄用,被Cython取代[2]

數據結構

SciPy的基礎數據結構是由NumPy模組提供的多維陣列。NumPy提供了一些有關線性代數傅立葉轉換亂數生成的函數,但不具備SciPy中對應函數的通用性。NumPy還可以作為任意資料類型的高效多維數據容器,這使得NumPy可以快速無縫地和眾多資料庫整合。 舊版SciPy使用Numeric作為陣列類型,但現已棄用,新版SciPy改用Numpy實現的陣列。[3]

歷史

在1990年代,Python引入了用於數值計算的陣列類型Numeric(這個包最終被Travis Oliphant英語Travis_Oliphant編寫的NumPy取代);此後,擴充模組數量不斷增加,許多人對一個完整的科學技術計算環境感興趣。2001年,Travis Oliphant、Eric Jones和Pearu Peterson合併了他們編寫的代碼,並將結果包命名為SciPy。新建立的包對Numeric數據結構提供了常見數值運算。此後不久,Fernando Pérez釋出了IPython(增強型互動式shell,在科學計算界廣泛使用);John Hunter釋出了Matplotlib(2D繪圖庫)的第一個版本,SciPy環境繼續增長,並增加了更多用於科學計算的工具。[4][5][6]

參考文獻

  1. ^ 1.0 1.1 Release 1.14.1. 2024年8月21日 [2024年8月27日]. 
  2. ^ SciPy 0.15.0 Release Notes — SciPy v1.6.2 Reference Guide. docs.scipy.org. [2021-04-13]. (原始內容存檔於2021-04-13). 
  3. ^ NumPy Homepage. [2023-03-10]. (原始內容存檔於2011-04-14). 
  4. ^ History of SciPy. [2023-03-10]. (原始內容存檔於2015-07-09). 
  5. ^ Guide to NumPy (PDF). [2023-03-10]. (原始內容存檔 (PDF)於2013-10-19). 
  6. ^ Python for Scientists and Engineers. [2023-03-10]. (原始內容存檔於2019-02-19). 

外部連結