SciPy 1.0.0 發行說明#

我們非常高興地宣布 SciPy 1.0 的發布,這是自 0.1 版本問世 16 年之後。 為了達到這個里程碑,我們經歷了漫長而富有成果的旅程,並且我們預期未來會有更多令人興奮的新功能和版本。

為何現在是 1.0 版?#

版本號應反映專案的成熟度 - 而 SciPy 是一個成熟且穩定的函式庫,長期以來已在生產環境中大量使用。 從這個角度來看,1.0 版本號早就應該發布了。

一些關鍵的專案目標,包括技術方面(例如 Windows wheels 和持續整合)和組織方面(治理結構、行為準則和路線圖),最近都已實現。

我們許多人都有點完美主義,因此不願意將某事物稱為「1.0」,因為這可能暗示它「已完成」或「我們對它 100% 滿意」。 這對於許多開放原始碼專案來說是很正常的,然而這並不表示它是對的。 我們自己也承認它並不完美,並且還剩下一些灰塵角落(這種情況可能永遠都會存在)。 儘管如此,SciPy 對其使用者來說非常有用,平均而言具有高品質的程式碼和文件,並提供 1.0 標籤所暗示的穩定性和向後相容性保證。

一些歷史與觀點#

  • 2001 年:第一個 SciPy 版本發布

  • 2005 年:過渡到 NumPy

  • 2007 年:scikits 的創建

  • 2008 年:新增 scipy.spatial 模組和第一個 Cython 程式碼

  • 2010 年:轉向 6 個月發布週期

  • 2011 年:SciPy 開發轉移到 GitHub

  • 2011 年:Python 3 支援

  • 2012 年:新增稀疏圖模組和統一最佳化介面

  • 2012 年:移除 scipy.maxentropy

  • 2013 年:使用 TravisCI 進行持續整合

  • 2015 年:為 BLAS/LAPACK 新增 Cython 介面和基準測試套件

  • 2017 年:使用 scipy.LowLevelCallable 新增統一 C API;移除 scipy.weave

  • 2017 年:SciPy 1.0 發行

Pauli Virtanen 是 SciPy 的終身仁慈獨裁者 (BDFL)。 他說

老實說,我們很久以前就可以發布 SciPy 1.0 了,所以我很高興我們終於在現在發布了。 這個專案歷史悠久,並且多年來作為一個軟體專案也日趨成熟。 我相信它已充分證明其價值,足以保證版本號以 1 開頭。

自 15 年多前構思以來,SciPy 主要由科學家編寫並為科學家服務,旨在提供他們所需的基本工具箱。 隨著時間的推移,積極參與其開發的人員組合經歷了一些輪換,並且我們已經朝著更系統化的開發方法演進。 無論如何,這種潛在的動力保持不變,我認為它也將繼續推動專案在未來向前發展。 這一切都很好,因為 1.0 之後很快就會有 1.1。

Travis Oliphant 是 SciPy 的創建者之一。 他說

我很榮幸為 SciPy 開發人員和整個 SciPy 社群撰寫祝賀 SciPy 1.0 發布的訊息。 這個版本代表了許多人的夢想,這個夢想由一群堅定的先驅近 20 年來耐心追求。 在這段時間裡,來自數百人的努力是廣泛且持續的。 從最初的討論到程式碼編寫和封裝工作,再到文件編寫工作,再到廣泛的會議和社群建設,SciPy 的努力已成為一種全球現象,我很榮幸能參與其中。

當我 1997 年第一次加入 Python 社群時,作為一名剛愛上 Python 的表達能力和可擴展性的年輕研究生,SciPy 的想法已經存在於多個人的腦海中。 網際網路才剛開始將志同道合的數學家和科學家聚集在新生電子連接的社群中。 1998 年,在 matrix-SIG、python 郵件列表中,與 Paul Barrett、Joe Harrington、Perry Greenfield、Paul Dubois、Konrad Hinsen、David Ascher 等人進行了協同討論。 這次討論鼓勵我在 1998 年和 1999 年拖延我的博士學位,並花費大量時間編寫 Python 擴充模組,這些模組主要封裝了經過實戰考驗的 Fortran 和 C 程式碼,使其可供 Python 使用者使用。 這項工作吸引了 Robert Kern、Pearu Peterson 和 Eric Jones 等人的幫助,他們在 2000 年加入了我的行列,因此到 2001 年,第一個 SciPy 版本就準備好了。 這遠早於 Github 簡化協作和來自其他人的輸入,「patch」命令和電子郵件是您幫助改進專案的方式。

自那時以來,數百人花費了大量時間來改進 SciPy 函式庫,並且圍繞這個函式庫的社群也大幅成長。 我在 2010 年左右停止積極參與開發 SciPy 函式庫。 幸運的是,當時 Pauli Virtanen 和 Ralf Gommers 在 David Cournapeau、Evgeni Burovski、Josef Perktold 和 Warren Weckesser 等數十位其他主要貢獻者的支持下,加快了開發速度。 雖然在過去的 7 年裡,我只能從遠處欣賞 SciPy 的發展,但我從未失去對該專案和社群驅動開發概念的熱愛。 即使現在,我仍然受到幫助維持不僅 SciPy 函式庫而且許多其他附屬和相關開放原始碼專案的發展的渴望所驅使。 我非常高興 SciPy 掌握在世界各地才華橫溢的開發人員手中,他們將確保 SciPy 仍然是草根、社群驅動開發如何成功的典範。

Fernando Perez 提供了更廣泛的社群觀點

當我還是 2001 年的物理學研究生時,一個新生的 Scipy 函式庫的存在,以及圍繞它的令人難以置信的社群(以今天的標準來看非常小),吸引我進入了科學 Python 世界。 今天,當我看到這些工具為從高中教育到促成 2017 年諾貝爾物理學獎的研究等一切事物提供動力時,我感到敬畏。

不要被 1.0 這個數字所迷惑:這個專案是現代科學計算生態系統的成熟基石。 我感謝許多促成此事的人,並希望將來能夠再次為其做出貢獻。 我向整個團隊致以誠摯的祝賀!

本次發行版的重點#

本次發行版的一些重點是

  • 主要的建置改進。 Windows wheels 首次在 PyPI 上提供,並且除了 Linux 之外,還在 Windows 和 OS X 上設定了持續整合。

  • 一組新的 ODE 求解器和它們的統一介面 (scipy.integrate.solve_ivp)。

  • 兩種新的信任域最佳化器和一種新的線性規劃方法,與 scipy.optimize 先前提供的效能相比有所改進。

  • 封裝了許多新的 BLAS 和 LAPACK 函數。 BLAS 封裝器現在已完成。

升級與相容性#

本次發行版中進行了許多棄用和 API 變更,這些變更記錄在下面。 在升級之前,我們建議使用者檢查他們自己的程式碼是否未使用已棄用的 SciPy 功能(若要執行此操作,請使用 python -Wd 執行您的程式碼,並檢查 DeprecationWarning)。

此版本需要 Python 2.7 或 >=3.4 以及 NumPy 1.8.2 或更高版本。

這也是最後一個支援 LAPACK 3.1.x - 3.3.x 的版本。 將最低支援的 LAPACK 版本移至 >3.2.x 長期以來一直受到 Apple Accelerate 提供 LAPACK 3.2.1 API 的阻礙。 我們已決定現在是時候放棄 Accelerate,或者,如果使用者有足夠的興趣,則為較新 LAPACK 版本中新增的函數提供墊片,以便仍然可以使用它。

新功能#

scipy.cluster 的改進#

新增了 scipy.cluster.hierarchy.optimal_leaf_ordering 函數,該函數用於重新排序連結矩陣,以最小化相鄰葉子之間的距離。

scipy.fftpack 的改進#

離散正弦和餘弦變換及其反變換的 N 維版本已新增為 dctnidctndstnidstn

scipy.integrate 的改進#

已將一組新的 ODE 求解器新增至 scipy.integrate。 方便函數 scipy.integrate.solve_ivp 允許統一存取所有求解器。 個別求解器(RK23RK45RadauBDFLSODA)也可以直接使用。

scipy.linalg 的改進#

scipy.linalg.blas 中的 BLAS 封裝器已完成。 新增的函數包括 *gbmv*hbmv*hpmv*hpr*hpr2*spmv*spr*tbmv*tbsv*tpmv*tpsv*trsm*trsv*sbmv*spr2

LAPACK 函數 *gels*stev*sytrd*hetrd*sytf2*hetrf*sytrf*sycon*hecon*gglse*stebz*stemr*sterf*stein 的封裝器已新增。

已新增 scipy.linalg.subspace_angles 函數,用於計算兩個矩陣之間的子空間角。

已新增 scipy.linalg.clarkson_woodruff_transform 函數。 它透過 Clarkson-Woodruff 變換找到低秩矩陣近似值。

新增了函數 scipy.linalg.eigh_tridiagonalscipy.linalg.eigvalsh_tridiagonal,它們用於尋找三對角 Hermitian/對稱矩陣的特徵值和特徵向量。

scipy.ndimage 的改進#

已將對齊次座標變換的支援新增至 scipy.ndimage.affine_transform

ndimage C 程式碼進行了重大的重構,現在更容易理解和維護。

scipy.optimize 的改進#

方法 trust-region-exacttrust-krylov 已新增至函數 scipy.optimize.minimize。 這些新的信任域方法以更高的準確性解決子問題,但代價是更多的 Hessian 因式分解(與 dogleg 相比)或更多的矩陣向量乘積(與 ncg 相比),但通常需要更少的非線性迭代,並且能夠處理不定 Hessian 矩陣。 與 scipy 中實作的其他 Newton 方法相比,它們似乎非常有競爭力。

scipy.optimize.linprog 獲得了一種內點法。 其效能優於(在準確性和速度方面)較舊的 simplex 方法。

scipy.signal 的改進#

已將參數 fs(取樣頻率)新增至以下函數:firwinfirwin2firlsremez。 這使得這些函數與 scipy.signal 中的許多其他函數一致,在這些函數中可以指定取樣頻率。

scipy.signal.freqz 對於 FIR 濾波器已顯著加速。

scipy.sparse 的改進#

迭代和切片 CSC 和 CSR 矩陣現在速度提高了高達約 35%。

COO 矩陣的 tocsr 方法現在速度提高了數倍。

稀疏矩陣的 diagonal 方法現在採用一個參數,指示要傳回哪個對角線。

scipy.sparse.linalg 的改進#

新增了一個用於大型非對稱稀疏線性系統的新迭代求解器 scipy.sparse.linalg.gcrotmk。 它實作了 GCROT(m,k),這是 GCROT 的彈性變體。

scipy.sparse.linalg.lsmr 現在接受初始猜測,從而可能加快收斂速度。

SuperLU 已更新至 5.2.1 版。

scipy.spatial 的改進#

scipy.spatial.distance 中的許多距離度量已獲得權重支援。

為了支援更廣泛的度量(例如需要額外關鍵字的基於字串的度量),scipy.spatial.distance.pdistscipy.spatial.distance.cdist 的簽名已變更為 *args, **kwargs。 此外,還向 pdistcdist 新增了可選的 out 參數,允許使用者指定結果距離矩陣的儲存位置

scipy.stats 的改進#

方法 cdflogcdf 已新增至 scipy.stats.multivariate_normal,提供多變數常態分佈的累積分布函數。

新增了新的統計距離函數,即用於第一個 Wasserstein 距離的 scipy.stats.wasserstein_distance 和用於能量距離的 scipy.stats.energy_distance

已棄用的功能#

scipy.misc 中的以下函數已棄用:bytescalefromimageimfilterimreadimresizeimrotateimsaveimshowtoimage。 這些函數中的大多數都有意想不到的行為(例如在使用者未要求的情況下重新縮放和類型轉換影像資料)。 其他函數只是有更好的替代方案。

scipy.interpolate.interpolate_wrapper 和該子模組中的所有函數都已棄用。 這是一組從未完成的封裝函數,現在已不再相關。

未來,scipy.signal.convolve2dfillvalue 將直接轉換為輸入陣列的 dtypes,並檢查它是否為純量或具有單個元素的陣列。

scipy.spatial.distance.matching 已棄用。 它是 scipy.spatial.distance.hamming 的別名,應改為使用它。

scipy.spatial.distance.wminkowski 的實作是基於對度量定義的錯誤解釋。 在 scipy 1.0 中,它僅在文件中棄用以保持回溯相容性,但建議使用新版本的 scipy.spatial.distance.minkowski,它實作了正確的行為。

scipy.spatial.distance.pdistscipy.spatial.distance.cdist 的位置引數應替換為其關鍵字版本。

向後不相容的變更#

以下已棄用的函數已從 scipy.stats 中移除:betaichisqprobf_valuehistogramhistogram2pdf_fromgammasignaltonoisesquare_of_sumsssthreshold

以下已棄用的函數已從 scipy.stats.mstats 中移除:betaif_value_wilks_lambdasignaltonoisethreshold

已從 scipy.stats.shapiro 中移除已棄用的 areta 關鍵字。

已從 scipy.sparse 中移除已棄用的函數 sparse.csgraph.cs_graph_componentssparse.linalg.symeig

scipy.sparse.linalg 模組中,下列已棄用的關鍵字已被移除:splu 中的 drop_tol,以及 bicgbicgstabcgcgsgmresqmrminres 中的 xtype

已棄用的函式 expm2expm3 已從 scipy.linalg 模組中移除。已棄用的關鍵字 q 已從 scipy.linalg.expm 中移除。而已棄用的子模組 linalg.calc_lwork 也已移除。

已棄用的函式 C2KK2CF2CC2FF2KK2F 已從 scipy.constants 模組中移除。

已棄用的 ppform 類別已從 scipy.interpolate 模組中移除。

已棄用的關鍵字 iprint 已從 scipy.optimize.fmin_cobyla 中移除。

scipy.signal.decimatezero_phase 關鍵字的預設值已變更為 True。

scipy.cluster.vq 中的 kmeanskmeans2 函式變更了用於隨機初始化的方法,因此使用固定的隨機種子不一定會產生與先前版本相同的結果。

scipy.special.gammaln 不再接受複數引數。

已棄用的函式 sph_jnsph_ynsph_jnynsph_insph_knsph_inkn 已被移除。使用者應改用函式 spherical_jnspherical_ynspherical_inspherical_kn。請注意,新的函式具有不同的簽名。

scipy.signal.lti 系統的跨類別屬性已被移除。以下屬性/設定器已被移除

名稱 - (存取/設定已移除) - (設定已移除)

  • StateSpace - (num, den, gain) - (zeros, poles)

  • TransferFunction (A, B, C, D, gain) - (zeros, poles)

  • ZerosPolesGain (A, B, C, D, num, den) - ()

ba >1-D 時,signal.freqz(b, a) 會引發 ValueError。這是一個邊緣案例,其行為是否明確尚不清楚。

當 alpha 的長度為 1 時,scipy.stats.dirichlet 的方法 var 現在會傳回純量而不是 ndarray。

其他變更#

SciPy 現在具有正式的管理結構。它由 BDFL (Pauli Virtanen) 和指導委員會組成。詳情請參閱治理文件

現在可以使用 MSVC + gfortran 在 Windows 上建置 SciPy 了!Appveyor 上已針對此建置組態設定持續整合,並針對 OpenBLAS 進行建置。

已在 TravisCI 上設定 OS X 的持續整合。

SciPy 測試套件已從 nose 遷移至 pytest

新增了 scipy/_distributor_init.py,以允許 SciPy 的重新發布者新增自訂程式碼,這些程式碼需要在匯入 SciPy 時執行(例如,硬體檢查、DLL 搜尋路徑等)。

新增了對 PEP 518(指定建置系統需求)的支援 - 請參閱 SciPy 儲存庫根目錄中的 pyproject.toml

為了使函式名稱保持一致,函式 scipy.linalg.solve_lyapunov 已重新命名為 scipy.linalg.solve_continuous_lyapunov。舊名稱為了向後相容性而保留。

作者#

  • @arcady +

  • @xoviat +

  • Anton Akhmerov

  • Dominic Antonacci +

  • Alessandro Pietro Bardelli

  • Ved Basu +

  • Michael James Bedford +

  • Ray Bell +

  • Juan M. Bello-Rivas +

  • Sebastian Berg

  • Felix Berkenkamp

  • Jyotirmoy Bhattacharya +

  • Matthew Brett

  • Jonathan Bright

  • Bruno Jiménez +

  • Evgeni Burovski

  • Patrick Callier

  • Mark Campanelli +

  • CJ Carey

  • Robert Cimrman

  • Adam Cox +

  • Michael Danilov +

  • David Haberthür +

  • Andras Deak +

  • Philip DeBoer

  • Anne-Sylvie Deutsch

  • Cathy Douglass +

  • Dominic Else +

  • Guo Fei +

  • Roman Feldbauer +

  • Yu Feng

  • Jaime Fernandez del Rio

  • Orestis Floros +

  • David Freese +

  • Adam Geitgey +

  • James Gerity +

  • Dezmond Goff +

  • Christoph Gohlke

  • Ralf Gommers

  • Dirk Gorissen +

  • Matt Haberland +

  • David Hagen +

  • Charles Harris

  • Lam Yuen Hei +

  • Jean Helie +

  • Gaute Hope +

  • Guillaume Horel +

  • Franziska Horn +

  • Yevhenii Hyzyla +

  • Vladislav Iakovlev +

  • Marvin Kastner +

  • Mher Kazandjian

  • Thomas Keck

  • Adam Kurkiewicz +

  • Ronan Lamy +

  • J.L. Lanfranchi +

  • Eric Larson

  • Denis Laxalde

  • Gregory R. Lee

  • Felix Lenders +

  • Evan Limanto

  • Julian Lukwata +

  • François Magimel

  • Syrtis Major +

  • Charles Masson +

  • Nikolay Mayorov

  • Tobias Megies

  • Markus Meister +

  • Roman Mirochnik +

  • Jordi Montes +

  • Nathan Musoke +

  • Andrew Nelson

  • M.J. Nichol

  • Juan Nunez-Iglesias

  • Arno Onken +

  • Nick Papior +

  • Dima Pasechnik +

  • Ashwin Pathak +

  • Oleksandr Pavlyk +

  • Stefan Peterson

  • Ilhan Polat

  • Andrey Portnoy +

  • Ravi Kumar Prasad +

  • Aman Pratik

  • Eric Quintero

  • Vedant Rathore +

  • Tyler Reddy

  • Joscha Reimer

  • Philipp Rentzsch +

  • Antonio Horta Ribeiro

  • Ned Richards +

  • Kevin Rose +

  • Benoit Rostykus +

  • Matt Ruffalo +

  • Eli Sadoff +

  • Pim Schellart

  • Nico Schlömer +

  • Klaus Sembritzki +

  • Nikolay Shebanov +

  • Jonathan Tammo Siebert

  • Scott Sievert

  • Max Silbiger +

  • Mandeep Singh +

  • Michael Stewart +

  • Jonathan Sutton +

  • Deep Tavker +

  • Martin Thoma

  • James Tocknell +

  • Aleksandar Trifunovic +

  • Paul van Mulbregt +

  • Jacob Vanderplas

  • Aditya Vijaykumar

  • Pauli Virtanen

  • James Webber

  • Warren Weckesser

  • Eric Wieser +

  • Josh Wilson

  • Zhiqing Xiao +

  • Evgeny Zhurko

  • Nikolay Zinov +

  • Zé Vinícius +

總共有 121 人為此版本做出了貢獻。名字旁邊有“+”號的人是第一次貢獻補丁。此名稱列表是自動產生的,可能並不完全完整。

針對 1.0.0 關閉的問題#

  • #2300: scipy.misc.toimage(以及因此的 imresize)轉換為 uint32…

  • #2347: 數個 misc.im* 函式錯誤地處理 3 或 4 通道…

  • #2442: scipy.misc.pilutil -> scipy.ndimage?

  • #2829: Windows 上的 Mingw Gfortran?

  • #3154: scipy.misc.imsave 建立錯誤的點陣圖標頭

  • #3505: scipy.linalg.lstsq() residual 的說明文字有點奇怪

  • #3808: 是否已實作 Brent 方法來最小化函式的值…

  • #4121: 將 cdf() 方法新增至 stats.multivariate_normal

  • #4458: scipy.misc.imresize 變更影像範圍

  • #4575: L-BFGS-B 的文件提及不存在的參數

  • #4893: misc.imsave 無法與定義的檔案類型一起使用

  • #5231: scipy.optimize.minimize(method='L-BFGS-B') 中的差異

  • #5238: scipy.cluster.hierarchy.dendrogram 中的最佳葉片排序

  • #5305: scipy/misc/pilutil.py 中使用 misc.imsave 的錯誤影像縮放?

  • #5823: filter_design 中的測試失敗

  • #6061: scipy.stats.spearmanr 傳回值超出 -1 到 1 的範圍

  • #6242: imread 和 imshow、imsave 的不一致/重複

  • #6265: BUG: 當高頻時,帶通類型的 signal.iirfilter 不穩定…

  • #6370: scipy.optimize.linear_sum_assignment 在未定義的矩陣上掛起

  • #6417: scipy.misc.imresize 將影像轉換為 uint8

  • #6618: splrep 和 splprep 不一致

  • #6854: 在 I/O 函式中支援 PEP 519

  • #6921: [功能請求] 隨機么正矩陣

  • #6930: uniform_filter1d 在輸出時似乎截斷而不是四捨五入…

  • #6949: interp2d 函式使 python 崩潰

  • #6959: scipy.interpolate.LSQUnivariateSpline - 檢查是否遞增…

  • #7005: 如果其中一個…,scipy.optimize 中的 linear_sum_assignment 永遠不會傳回

  • #7010: scipy.statsbinned_statistic_2d: 傳回不正確的 binnumbers

  • #7049: 當針對間隔呼叫時,expm_multiply 過於緩慢

  • #7050: 記錄 rv_discrete_argcheck

  • #7077: coo_matrix.tocsr() 仍然很慢

  • #7093: Wheels 授權

  • #7122: 基於草圖的矩陣計算

  • #7133: scipy 特殊函式的不連續性

  • #7141: 改善橢圓積分的文件

  • #7181: numpy.poly1d 中的變更導致 scipy 測試失敗。

  • #7220: LinearOperator.__init__ 中的字串格式化問題

  • #7239: 原始碼 tarball 發行

  • #7247: genlaguerre poly1d 物件在評估時不遵守 'monic' 選項

  • #7248: BUG: master 上 Legendre 多項式的迴歸

  • #7316: dgels 遺失

  • #7381: Krogh 插值無法為複數產生導數…

  • #7416: scipy.stats.kappa4(h,k) 對於正整數引發 ValueError…

  • #7421: scipy.stats.arcsine().pdf 和 scipy.stats.beta(0.5, 0.5).pdf…

  • #7429: scipy/linalg/tests/test_basic.py 中的 test_matrix_norms() 呼叫…

  • #7444: Doc: stats.dirichlet.var 輸出描述錯誤

  • #7475: scalar_search_wolfe2 中的參數 amax 未使用

  • #7510: numpy.array 和 scipy.sparse 矩陣之間的運算傳回…

  • #7550: DOC: signal 教學課程:卷積說明中的錯字

  • #7551: SuperLU 標頭檔中包含 stdint.h,但不存在…

  • #7553: OS X 上 master 的建置已損壞

  • #7557: scipy.signal.periodogram 範例中的錯誤

  • #7590: OSX 測試失敗 - test_ltisys.TestPlacePoles.test_real

  • #7658: optimize.BenchGlobal 已損壞

  • #7669: multivariate_normal.cdf 的 nan 結果

  • #7733: Delaunay.vertex_neighbor_vertices 中 indices、indptr 的使用不一致

  • #7747: np.random.dirichlet 中的 Numpy 變更導致測試失敗

  • #7772: 修復 numpy lstsq rcond= 參數

  • #7776: 測試需要 `nose`

  • #7798: 1.0 發行說明的貢獻者名稱

  • #7828: 32 位元 Linux 測試在 TestCephes 上發生錯誤

  • #7893: 1.0.0b1 中 scipy.spatial.distance.wminkowski 行為變更

  • #7898: DOC: 視窗函式

  • #7959: BUG 也許:fmin_bfgs 在 1.0 中可能已損壞

  • #7969: scipy 1.0.0rc1 windows wheels 依賴遺失的 msvcp140.dll

針對 1.0.0 的提取請求#

  • #4978: WIP: 將 pre_center 和 normalize 選項新增至 lombscargle

  • #5796: TST: 從測試中移除所有永久篩選器變更

  • #5910: ENH: sparse.linalg: 新增 GCROT(m,k)

  • #6326: ENH: 新的 ODE 求解器

  • #6480: ENH: 使 signal.decimate 預設為 zero_phase=True

  • #6705: ENH: 將初始猜測新增至 sparse.linalg.lsqr

  • #6706: ENH: 將初始猜測新增至 sparse.linalg.lsmr

  • #6769: BUG: optimize: 將足夠下降條件檢查新增至 CG 線…

  • #6855: 在 I/O 函式中處理支援 PEP 519 的物件

  • #6945: MAINT: ckdtree 程式碼庫清理

  • #6953: DOC: 新增 SciPy 專案治理文件

  • #6998: 修復 Spearman 等級相關係數的文件

  • #7017: ENH: 將方法 logcdf 和 cdf 新增至 scipy.stats.multivariate_normal

  • #7027: 新增隨機么正矩陣

  • #7030: ENH: 將嚴格遞增檢查新增至 1D 樣條曲線的 x

  • #7031: BUG: 修復 linear_sum_assignment 掛在未定義矩陣上的問題

  • #7041: DOC: 闡明視窗預設為 DFT-even

  • #7048: DOC: 修改了 find_peak_cwt 的文件。修復 #6922

  • #7056: 修復計算 Spearman/Kendall 時的精度不足…

  • #7057: MAINT: 變更 optimize.linear_sum_assignment 中的 dtype 比較。

  • #7059: TST: 使 Xdist_deprecated_args 涵蓋所有度量

  • #7061: 修復 msvc 9 和 10 編譯錯誤

  • #7070: ENH: sparse: 優化 CSR/CSC 切片快速路徑

  • #7078: ENH: sparse: 將 sum_duplicates 延遲到 csr/csc

  • #7079: ENH: sparse: 允許子類別覆寫特定的數學運算

  • #7081: ENH: sparse: 加速 CSR/CSC toarray()

  • #7082: MAINT: 為 Py3 新增遺失的 PyType_Ready(&SuperLUGlobalType)

  • #7083: 更正 scipy.linalg.lstsq() 文件中的錯字

  • #7086: 修復錯誤 #7049 導致 expm_multiply 過於緩慢的問題

  • #7088: 記錄 rv_discrete_argcheck

  • #7094: MAINT: 修復 PR #7082 中的錯誤

  • #7098: BF: 從失敗的 Py3 模組檢查傳回 NULL

  • #7105: MAINT: 自訂 Lyapunov 求解器中的 ?TRSYL 呼叫

  • #7111: 修復 UnivariateSpline 中的錯誤訊息錯字

  • #7113: FIX: 在文件中新增 float 到傳回類型

  • #7119: ENH: sparse.linalg: 移除 _count_nonzero hack

  • #7123: ENH: 為 scipy.optimize.linprog 新增 “interior-point” 方法

  • #7137: DOC: 闡明 stats.linregress 文件字串,關閉 gh-7074

  • #7138: DOC: special: 將範例新增至 airy 文件字串。

  • #7139: DOC: stats: 更新 stats 教學課程

  • #7142: BUG: special: 防止 pbwa 中的分段錯誤

  • #7143: DOC: special: 警告關於橢圓積分參數化的替代方法

  • #7146: 修復 NearestNDInterpolator 的文件字串

  • #7148: DOC: special: 將參數、傳回值和範例新增至 gamma 文件字串

  • #7152: MAINT: spatial: 移除 ckdtree/src/distance.h 中的兩個未使用變數

  • #7153: MAINT: special: 移除 gammaln 的已棄用變體

  • #7154: MAINT: 修復一些產生 C 編譯器警告的程式碼

  • #7155: DOC: linalg: 為 solve_bandedsolve_triangular 新增範例

  • #7156: DOC: 修復 NearestNDInterpolator 的文件字串

  • #7159: BUG: special: 修復 pbwax < 0 時導數的符號

  • #7161: MAINT: interpolate: 使 Rbf.A 陣列成為屬性

  • #7163: MAINT: special: 為 pbwa 的不精確區域傳回 nan

  • #7165: ENH: optimize: 變更以使 BFGS 實作更有效率。

  • #7166: BUG: 防止 optimize._lsq.trf_linear.py 中的無限迴圈

  • #7173: BUG: sparse: 從 _add_dense 傳回 numpy 矩陣

  • #7179: DOC: 修復 sparse argmax 文件字串中的錯誤

  • #7180: MAINT: interpolate: 在 interpolate/src/_interpolate.cpp 中進行一些清理

  • #7182: 允許 affine_transform 中的齊次座標轉換

  • #7184: MAINT: 移除修改唯讀屬性的 hack

  • #7185: ENH: 新增週期性樣條曲線的評估 #6730

  • #7186: MAINT: PPoly: 改善錯誤形狀/軸的錯誤訊息

  • #7187: DEP: interpolate: 棄用 interpolate_wrapper

  • #7198: DOC: linalg: 為 solveh_bandedsolve_toeplitz 新增範例。

  • #7200: DOC: stats: 為廣義…新增教學文件

  • #7208: DOC: 將文件字串新增至 issparse/isspmatrix(_...) 方法和…

  • #7213: DOC: 為 circmean、circvar、circstd 新增範例

  • #7215: DOC: 將範例新增至 scipy.sparse.linalg…. 文件字串

  • #7223: DOC: special: 為 expit 和 logit 新增範例。

  • #7224: BUG: interpolate: 修復 fitpack.bispev 中的整數溢位

  • #7225: DOC: 更新 1.0 發行說明以包含最近的 PR。

  • #7226: MAINT: 更新文件和程式碼,以將郵寄清單移至 python.org

  • #7233: 修復問題 #7232:不要遮罩目標函式評估中的例外狀況

  • #7234: MAINT: cluster: 清理 VQ/k-means 程式碼

  • #7236: DOC: 修復錯字

  • #7238: BUG: 修復由於 trustregion_exact 中的 unicode 字元而導致的 syntaxerror。

  • #7243: DOC: 更新 misc/pilutil.py 中的文件字串

  • #7246: DEP: misc: 棄用匯入的名稱

  • #7249: DOC: 為 scipy.cluster.vq.kmeans 新增繪圖範例

  • #7252: 修正 5231:使 factr, ftol 的文件與程式碼同步

  • #7254: ENH: 球狀 Voronoi 輸入處理

  • #7256: 修正問題 #7255 - 循環統計函數給出錯誤…

  • #7263: CI: 使用 python 的 faulthandler 以簡化追蹤 segmentation fault

  • #7288: ENH: linalg: 新增 subspace_angles 函數。

  • #7290: BUG: stats: 修正 genextreme 中虛假的警告。

  • #7292: ENH: optimize: 新增信任域方法 trust-trlib

  • #7296: DOC: stats: 為 ttest_ind_from_stats 文件字串新增範例。

  • #7297: DOC: signal: 為 chirp()sweep_poly() 新增範例。

  • #7299: DOC: 更清楚地說明 brent 和 fminbound 之間的差異

  • #7305: 簡化 integrate._ode 中的 if 語句和建構子呼叫

  • #7309: 遵守 PEP 518。

  • #7313: REL: 在 setup.py 中新增 python_requires,修正 Python 版本檢查。

  • #7315: BUG: 修正 Laguerre 和 Legendre 多項式的錯誤

  • #7320: DOC: 闡明 ode.integrate 中 flags 的含義

  • #7333: DOC: 為 scipy.ndimage.gaussian_filter1d 新增範例

  • #7337: ENH: 為 fftpack 新增 n 維 DCT 和 IDCT

  • #7353: 新增 _gels 函數

  • #7357: DOC: linalg: 為 svdvals 文件字串新增範例。

  • #7359: 將 Sphinx 版本升級至 1.5.5

  • #7361: DOC: linalg: 在特殊矩陣之間新增一些「See Also」連結…

  • #7362: TST: 修正一些 Fedora 25 測試失敗。

  • #7363: DOC: linalg: 微調 svd 的文件字串範例

  • #7365: MAINT: 修正 Sphinx >= 1.5 的 refguide_check.py

  • #7367: BUG: odrpack: 修正 d_lpkbls.f 中無效的 stride 檢查

  • #7368: DOC: constants: 為 ‘find’ 文件字串新增範例。

  • #7376: MAINT: 將 Mathjax 與建置文件捆綁

  • #7377: MAINT: optimize: 為 trust-region-exact 方法提供更好的名稱。

  • #7378: 改進教學文件中的措辭

  • #7383: 修正 KroghInterpolator.derivatives 在處理複數輸入時的失敗

  • #7389: FIX: 複製 resample_poly 中可變的 window

  • #7390: DOC: optimize: 微調 curve_fit 中的範例

  • #7391: DOC: 為 scipy.stats 新增範例

  • #7394: 「Weight」實際上是質量。將 slugs 和 slinches/blobs 新增至質量單位

  • #7398: DOC: 修正 optimize.{brenth,brentq} 中的小錯字

  • #7401: DOC: zeta 僅接受實數輸入

  • #7413: BUG: 修正 _minimize_trustregion_exact 中的錯誤訊息

  • #7414: DOC: 修正 ndimage.distance_transform_bf 文件字串 [ci skip]

  • #7415: DOC: 修正 skew 文件字串 [ci skip]

  • #7423: 使用正確的維度擴展 binnumbers

  • #7431: BUG: 將 scipy.stats.arcsine.pdf 擴展到端點 0 和 1 #7427

  • #7432: DOC: 為 scipy.cluster.hierarchy 新增範例

  • #7448: ENH: stats: 實作 pareto 的生存函數。

  • #7454: FIX 將 np.assert_allclose 替換為匯入的 assert_allclose

  • #7460: TST: 修正 integrate.ivp 在 32 位元 Python 上失敗的測試。

  • #7461: DOC: 為 stats 分佈 ksone 新增教學文件

  • #7463: DOC: 修正錯字並移除尾隨空白

  • #7465: 修正一些 ndimage.interpolation endianness 錯誤

  • #7468: 刪除 interpolate.py 中的冗餘

  • #7470: 在 minpack_lmdif 中初始化 “info”

  • #7478: 為 smirnov/smirnovi 函數新增更多測試

  • #7479: MAINT: 為 numpy 1.13.0 中新的 FutureWarning 更新

  • #7480: DOC: 正確描述 dirichlet.mean() 的輸出形狀,以及…

  • #7482: signal.lti: 移除已棄用的跨系統屬性

  • #7484: MAINT: 清理 ndimage 中 np.asarray 的使用

  • #7485: ENH: 在 ndimage.gaussian_filter 中支援任何 order >=0

  • #7486: ENH: 為 sparse.diagonal() 支援 k!=0

  • #7498: BUG: sparse: 將 assumeSortedIndices 選項傳遞給 scikit.umfpack

  • #7501: ENH: 為 linkage matrices 新增最佳葉序

  • #7506: MAINT: 移除 Metropolis 中的溢位錯誤,修正 #7495

  • #7507: TST: 透過減少 mpmath 測試中的評估點來加速完整測試套件。

  • #7509: BUG: 修正使用 python setup.py somecommand --force 時的問題。

  • #7511: 修正 lgtm 發現的一些警報

  • #7514: 新增整數回傳值的意義說明。

  • #7516: BUG: 修正 ndimage.uniform_filter1d 中的捨入誤差。

  • #7517: TST: 修正實際上被跳過的 signal.convolve 測試。

  • #7523: ENH: linalg: 允許 lstsq 處理 0 形狀的陣列

  • #7525: TST: 警告清理

  • #7526: DOC: ndimage.interpolation 函數中的 params 不是可選的

  • #7527: MAINT: 將錯誤訊息處理封裝在 NI_LineBuffer 中。

  • #7528: MAINT: 移除 NPY_MAXDIMS 的 ndimage 別名。

  • #7529: MAINT: 移除 NI_(UN)LIKELY 巨集,改用 numpy 的巨集。

  • #7537: MAINT: 使用存取器函數來處理 numpy 陣列的內部結構

  • #7541: MAINT: 移除 ndimage 中 Numarray types 的一些用法。

  • #7543: MAINT: 替換 ni_fourier.c 中所有 NumarrayTypes 的用法

  • #7544: MAINT: 替換 ni_interpolation.c 中所有 NumarrayTypes 的用法

  • #7545: MAINT: 替換 ni_measure.c 中所有 NumarrayTypes 的用法

  • #7546: MAINT: 替換 ni_morphology.c 中所有 NumarrayTypes 的用法

  • #7548: DOC: 在 benchmarks README 中新增關於如何在不重新建置的情況下執行的說明。

  • #7549: MAINT: 移除 NumarrayTypes。

  • #7552: TST: 修正 OSX 上發現的新警告 -> 錯誤錯誤

  • #7554: 將 superlu 更新至 5.2.1 + 修正 MSVC 上 stdint.h 的問題

  • #7556: MAINT: 修正 #7549 中的一些類型錯誤 + 其他雜項警告。

  • #7558: MAINT: 使用正確的 #define NO_IMPORT_ARRAY,而不是 NO_ARRAY_IMPORT

  • #7562: BUG: 從 numpy 複製 import_nose

  • #7563: ENH: 新增第一個 Wasserstein 和 Cramér-von Mises 統計量…

  • #7568: 測試清理

  • #7571: 測試清理 pt. 2

  • #7572: Pytest 化

  • #7574: TST: 從 stats 移除忽略警告的篩選器

  • #7577: MAINT: 移除 ndimage/ni_measure.c 和 .h 中未使用的程式碼

  • #7578: TST: 從 sparse 移除忽略警告的篩選器,清理警告…

  • #7581: BUG: 正確地從 PyArray_IntpConverter 中釋放記憶體。

  • #7582: DOC: signal 教學文件:卷積說明中的錯字

  • #7583: 移除剩餘的忽略警告篩選器

  • #7586: DOC: 在 HACKING.rst 中新增關於在哪裡找到建置文件的說明。

  • #7587: DOC: 為 scipy.optimize 新增範例

  • #7594: TST: 為 ndimage 轉換器函數新增測試。

  • #7596: 為 signal.savgol_filter 新增健全性檢查

  • #7599: _upfirdn_apply 停止條件錯誤修正

  • #7601: MAINT: special: 移除 sph_jn 等。

  • #7602: TST: 修正 numpy 導致的 trimmed statistics 測試失敗…

  • #7605: 清楚說明所需的維度順序

  • #7606: MAINT: 移除未使用的函數 NI_NormalizeType

  • #7607: TST: 將 osx 新增至 travis 矩陣

  • #7608: DOC: 改進 HACKING 指南 - 提及審查 PR 作為貢獻。

  • #7609: MAINT: 透過避免不必要的…來移除不必要的警告篩選器

  • #7610: #7557 : 修正 periodogram 中的範例程式碼

  • #7611: #7220 : 修正為無效形狀引發 ValueError 時的 TypeError

  • #7612: 將 yield 測試轉換為 pytest 參數化測試

  • #7613: 新增發行者初始化檔案

  • #7614: 修正標頭

  • #7615: BUG: sparse: 修正使用非標準稀疏參數的賦值

  • #7617: DOC: 闡明數位濾波器函數

  • #7619: ENH: scipy.sparse.spmatrix.astype: 轉換和複製參數…

  • #7621: 向使用者公開 VODE/ZVODE/LSODE IDID 回傳碼

  • #7622: MAINT: special: 移除 ellpk 的過時註解

  • #7625: TST: 為「ignore」警告篩選器新增測試

  • #7628: MAINT: 重構和清理 distance.py/.c/.h

  • #7629: DEP: 棄用 xdist 中 args 的用法

  • #7630: ENH: 加權度量

  • #7634: 接續 #6855

  • #7635: interpolate.splprep: 測試一些錯誤情況,提供稍微更好的…

  • #7642: 為 interpolate.lagrange 新增範例

  • #7643: ENH: 為 LAPACK <s,d>stev 新增包裝器

  • #7649: 修正 #7636,為剩餘的 I/O 函數新增 PEP 519 測試覆蓋率

  • #7650: DOC: signal: 為 sosfiltfilt 的文件字串新增「範例」。

  • #7651: 修正 Travis 上的 ccache 用法 + 嘗試在 OSX 上啟用

  • #7653: DOC: 將範例從 2 轉換到 3。關閉 #7366

  • #7659: BENCH: 修正 optimize.BenchGlobal。關閉 gh-7658。

  • #7662: CI: 加速持續整合建置

  • #7664: 更新 odr 文件

  • #7665: BUG: wolfe2 線/純量搜尋現在使用 amax 參數

  • #7671: MAINT: _lib/ccallback.h: PyCapsule_GetName 回傳 const char*

  • #7672: TST: interpolate: 測試週期性 b 樣條對…的積分

  • #7674: 測試調整

  • #7675: CI: 將 refguide-check 移動到更快的建置

  • #7676: DOC: 升級 scipy-sphinx-theme 以修正 copybutton.js

  • #7678: 注意 splrep 和 splprep 結果的零填充

  • #7681: MAINT: _lib: 新增使用者可覆寫的可用記憶體判斷

  • #7684: TST: linalg: 明確關閉已開啟的 npz 檔案

  • #7686: MAINT: 移除不必要的 shebang 行和可執行位元

  • #7687: BUG: stats: 如果動差是無限的,則不要發出無效的警告

  • #7690: ENH: 允許在多個常式中使用類似整數的參數

  • #7691: DOC: 從文件中移除無法運作的來源連結

  • #7694: 在函數 median_cihs 中將 ma.rray 修正為 ma.array

  • #7698: BUG: stats: 修正 multivariate_normal.cdf (#7669) 的 nan 結果

  • #7703: DOC: special: 更新非中心 F 函數的文件字串。

  • #7709: BLD: integrate: 避免 lsoda 和 vode 之間的符號衝突

  • #7711: TST: _lib: 使 test_parallel_threads 不會錯誤地失敗

  • #7712: TST: stats: 提高 TestMultivariateNormal.test_broadcasting 中的測試容忍度

  • #7715: MAINT: 修正已棄用的 numpy.issubdtype 用法

  • #7716: TST: integrate: 捨棄計時測試

  • #7717: MAINT: mstats.winsorize 包含錯誤修正

  • #7719: DOC: stats: 新增關於 rdist 分佈特殊情況的註釋。

  • #7720: DOC: 為 stats.pearsonr 新增範例和數學式

  • #7723: DOC: 新增 Mann-Whitney U 統計量參考

  • #7727: BUG: special/cdflib: 處理 nan 和非有限輸入

  • #7728: BLD: spatial: 修正 ckdtree depends 標頭列表

  • #7732: BLD: 更新 Bento 建置以支援 optimal_leaf_ordering 新增功能

  • #7734: DOC: signal: 編輯副本並為 Kaiser 相關的…新增範例

  • #7736: BUG: 修正 #7735: 防止串聯索引中的整數溢位…

  • #7737: DOC: 為 spatial.Delaunay vertex_neighbor_vertices 重新命名 indices/indptr

  • #7738: ENH: 加速 freqz 計算

  • #7739: TST: 忽略 win32 中的 ncfdtridfn 失敗,並在 FPU 模式變更時發出警告

  • #7740: 修正 Anderson-Darling k 樣本檢定中的溢位

  • #7742: TST: special: 限制 expm1 mpmath 比較範圍

  • #7748: TST: stats: 不要將無效的 alpha 傳遞給 np.random.dirichlet

  • #7749: BUG/DOC: optimize: 方法是 ‘interior-point’,而不是 ‘interior…

  • #7751: BUG: optimize: show_options('linprog', method='interior-point')

  • #7753: ENH: io: 更容易的語法,用於 FortranFile 讀取/寫入混合記錄

  • #7754: BLD: 將 _lib._fpumode 擴充功能新增至 Bento 建置。

  • #7756: DOC: 以數學式顯示機率密度函數

  • #7757: MAINT: 移除過時的 OS X 建置腳本。修正 pytest 失敗。

  • #7758: MAINT: stats: pep8, 包裝程式碼行

  • #7760: DOC: special: 新增關於如何新增特殊函數的說明

  • #7761: DOC: 允許為 Sphinx makefile 指定 Python 版本

  • #7765: TST: 修正 mstats_extras.py 的測試覆蓋率

  • #7767: DOC: 更新 1.0 發行說明。

  • #7768: DOC: 更新關於如何發行的說明。也將 paver 檔案變更為…

  • #7769: 為 planck dist 新增 _sf_logsf 函數

  • #7770: DOC: 替換 minres 文件字串中損壞的連結

  • #7771: MAINT: f2py 建置輸出清理

  • #7773: DOC: optimize: 編輯 linprog 文件中的副本。

  • #7774: MAINT: 為 np.linalg.lstsq 呼叫明確設定 rcond

  • #7777: 移除剩餘的 nose 匯入

  • #7780: ENH: 包裝 LAPACK 的 dsytrd

  • #7781: DOC: 連結 rfft

  • #7782: MAINT: 在 cythonize 中執行 pyx 自動生成並移除 autogen 檔案

  • #7783: FIX: 在數位濾波器中禁止 Wn==1

  • #7790: 修正 gh-5910 引入的測試錯誤

  • #7792: MAINT: 修正 pyproject.toml 中的語法

  • #7809: ENH: sketches - Clarkson Woodruff 轉換

  • #7810: ENH: 新增 eig(vals)_tridiagonal

  • #7811: BUG: stats: 修正 binned_statistics_dd 中的警告

  • #7814: ENH: signal: 將 ‘nyq’ 和 ‘Hz’ 參數替換為 ‘fs’。

  • #7820: DOC: 更新 1.0 發行說明和 mailmap

  • #7823: BUG: messagestream / qhull.pyx 中的記憶體洩漏

  • #7830: DOC: linalg: 為 lstsq 文件字串新增範例。

  • #7835: ENH: decimate 的自動 FIR 階數

  • #7838: MAINT: stats: 棄用 frechet_lfrechet_r

  • #7841: slsqp PEP8 格式修正、錯字等。

  • #7843: ENH: 包裝所有 BLAS 常式

  • #7844: DOC: 視需要使用捆綁程式庫的許可證更新 LICENSE.txt。

  • #7851: ENH: 為 ?GGLSE, ?(HE/SY)CON, ?SYTF2, ?(HE/SY)TRF 新增包裝器

  • #7856: ENH: 為 Xdist 新增 out 參數

  • #7858: BUG: special/cdflib: 修正 cumfnc 中嚴重的精度損失問題

  • #7859: FIX: 抑制 place_poles 警告邊緣情況

  • #7861: 未定義 WITH_THREAD 的虛擬語句

  • #7863: MAINT: 將許可證文字新增至二進位發行版

  • #7866: DOC, MAINT: 修正文件中的連結

  • #7867: DOC: 修正分佈文件字串中 pdf 的描述。

  • #7869: DEP: 棄用 misc.pilutil 函數

  • #7870: DEP: 移除已棄用的函數

  • #7872: TST: 靜音 stats.truncnorm 測試中標記為…的 RuntimeWarning

  • #7874: TST: 修正間歇性失敗的 optimize.linprog 測試。

  • #7875: TST: 過濾 stats 測試中的兩個積分警告。

  • #7876: GEN: 為測試新增註解以進行說明

  • #7891: ENH: 將 #7879 向後移植到 1.0.x

  • #7902: MAINT: signal: 使 freqz 處理多維陣列的方式與…一致

  • #7905: REV: 還原 wminkowski

  • #7908: FIX: 避免錯誤的 __del__ (close) 行為

  • #7918: TST: 將兩個 optimize.linprog 測試標記為 xfail。請參閱 gh-7877。

  • #7929: MAINT: 在 sytf2、sytrf 和 hetrf 中將預設值變更為較低的值

  • #7939: 修正 win-amd64 的 umfpack 求解器建構

  • #7948: DOC: 新增關於在升級到…之前檢查棄用功能的說明

  • #7952: DOC: 更新 SciPy 1.0 發行版和近期討論的路線圖。

  • #7960: BUG: optimize: 還原 gh-7165 中 bfgs 的變更

  • #7962: TST: special: 將失敗的 hyp2f1 測試標記為 xfail

  • #7973: BUG: 修正 _get_mem_available 工具中 ‘info’ 的關鍵字

  • #8001: TST: 修正 Matplotlib 2.1 更新導致的測試失敗

  • #8010: BUG: signal: 修正 lfilter 中的崩潰

  • #8019: MAINT: 修正 NumPy master 導致的測試失敗