科學運算函式庫 NumPy 2.0.0 發布

更新於 發佈於 閱讀時間約 4 分鐘

NumPy 是 Python 語言的一個擴充程式庫,支援高階大規模的多維陣列與矩陣運算的數學函式函式庫。

NumPy 2.0.0 是自 2006 年以來的第一個主要發行版本,此重要版本標誌著 NumPy 發展歷程中的一項重要里程碑,為使用者提供了豐富的增強功能和改進,並為未來的功能開發奠定了基礎。

更新要點

  • 新功能
    • 新的變長字串資料類型 StringDType,以及新的 numpy.strings 命名空間,其中包含用於字串運算的高效能 ufunc,
    • 在所有 numpy.fft 函數中支援 float32 和 longdouble,
    • 在主要 numpy 命名空間中支援陣列 API 標準。
  • 效能改善
    • 排序函數(sort、argsort、partition、argpartition)已透過使用 Intel x86-simd-sort 和 Google Highway 函式庫加速,並可能大幅提升速度(特定於硬體),
    • 支援 macOS 加速和 macOS >=14 的二進制輪,大幅提升 macOS 上線性代數運算的效能,且輪的體積縮小約 3 倍,
    • numpy.char 定長字串操作已透過實作 ufunc 加速,ufunc 除了支援定長字串資料型態外,也支援 StringDType。
    • 新的追蹤和內省 API,opt_func_info,用於判斷有哪些硬體特定核心可用,以及將派送至何處。
  • Python API 改進
    • 公開 API 和私人 API 之間的明確區分,採用新的 模組結構,每個公開函式現在都可以在單一位置取得。
    • 移除許多不建議使用的函式和別名。這應讓學習和使用 NumPy 變得更容易。主命名空間中的物件數量減少約 10%,numpy.lib 中減少約 80%。
    • 正規資料型態名稱 和新的 isdtype 內省函式。
  • C API 改進
    • 新的 用於建立自訂資料型態的公開 C API。
    • 移除許多過時的函式和巨集,並隱藏私人內部結構,以簡化未來的可擴充性。
    • 新的、更容易使用的初始化函式:PyArray_ImportNumPyAPI 和 PyUFunc_ImportUFuncAPI。
  • 行為改善
    • 透過採用 NEP 50,改善類型提升行為。這修正了許多使用者的驚訝,這些驚訝以前經常取決於輸入陣列的資料值,而不僅取決於它們的資料型態。請參閱 NEP 和 NumPy 2.0 遷移指南,以了解詳細資訊,因為此變更可能會導致輸出資料型態變更,以及混合資料型態操作的精度降低。
    • Windows 上的預設整數類型現在是 int64,而非 int32,這與其他平台上的行為相符。
    • 陣列維度的最大數量已從 32 變更為 64
  • 文件
    • 參考指南導覽已大幅改善,現在有 NumPy 模組結構 的文件。
    • 從原始碼建置 文件已完全改寫。

此外,NumPy 內部有許多變更,包括持續將程式碼從 C 遷移至 C++,這將讓 NumPy 在未來更容易改善和維護。

「沒有免費的午餐」定理規定,所有這些 API 和行為改善以及更好的未來可擴充性都需要付出代價。這個代價是

  1. 向後相容性。Python 和 C API 有許多重大變更。在大部分情況下,會有明確的錯誤訊息,告知使用者如何調整他們的程式碼。然而,也有行為變更無法提供此類錯誤訊息 - 這些情況都包含在下列的「不建議使用」和「相容性」區段,以及 NumPy 2.0 遷移指南 中。 請注意,有一個ruff模式可以自動修正 Python 程式碼中的許多問題。
  2. NumPy ABI 的重大變更。因此,使用 NumPy C API 並針對 NumPy 1.xx 版本建置的套件二進位檔將無法與 NumPy 2.0 搭配使用。匯入時,此類套件會看到ImportError,並附有關於二進位檔不相容性的訊息。 可以針對 NumPy 2.0 建置二進位檔,這些二進位檔可以在執行時與 NumPy 2.0 和 1.x 搭配使用。請參閱NumPy 2.0 專屬建議以取得更多詳細資訊。 建議所有依賴 NumPy ABI 的下游套件針對 NumPy 2.0 進行新的版本建置,並驗證該版本可以與 2.0 和 1.26 搭配使用,理想情況是在 2.0.0rc1(ABI 將保持穩定)和最終的 2.0.0 版本之間,以避免使用者的問題。

此版本支援的 Python 版本為 3.9-3.12。

NumPy 2.0 文件

https://chihyuanyip.github.io/2024/07/01/numpy-2-0-0-released.html

留言
avatar-img
留言分享你的想法!
avatar-img
Chih-Yuan Yip的沙龍
2會員
6內容數
Chih-Yuan Yip的沙龍的其他內容
2024/08/09
PyTorch 是一個開源的 Python 機器學習庫,基於 Torch 庫,底層由 C++ 實現,應用於人工智慧領域,如電腦視覺和自然語言處理等。 PyTorch 2.4 引入了多項新功能和改進,包括支援 Python 3.12、AOTInductor 凍結功能、新的高階 Python 自訂運算
Thumbnail
2024/08/09
PyTorch 是一個開源的 Python 機器學習庫,基於 Torch 庫,底層由 C++ 實現,應用於人工智慧領域,如電腦視覺和自然語言處理等。 PyTorch 2.4 引入了多項新功能和改進,包括支援 Python 3.12、AOTInductor 凍結功能、新的高階 Python 自訂運算
Thumbnail
2024/06/18
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
2024/06/18
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
2024/06/01
JavaScript (簡稱 JS) 是具有一級函數的輕量級、直譯式或即時編譯的程式語言。它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是 Node.js 等。由於 JavaScript 語法上的一些缺點,軟體工程師們又設計出了 CoffeeScript、TypeScript 和
Thumbnail
2024/06/01
JavaScript (簡稱 JS) 是具有一級函數的輕量級、直譯式或即時編譯的程式語言。它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是 Node.js 等。由於 JavaScript 語法上的一些缺點,軟體工程師們又設計出了 CoffeeScript、TypeScript 和
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
pandas是用於資料操縱和分析的Python軟體庫。它建造在 NumPy 基礎上,並為操縱數值表格和時間序列,提供了資料結構和運算操作。 Pandas 的主要資料結構包含 Series 和 DataFrame 物件,由於 Pandas 本身基 Numpy 所以在使用大量資料運算時效能表現也優於原
Thumbnail
NumPy 是 Python 語言的一個擴充程式庫,支援高階大規模的多維陣列與矩陣運算的數學函式函式庫。 NumPy 2.0.0 是自 2006 年以來的第一個主要發行版本,此重要版本標誌著 NumPy 發展歷程中的一項重要里程碑,為使用者提供了豐富的增強功能和改進,並為未來的功能開發奠定了基礎。
Thumbnail
NumPy 是 Python 語言的一個擴充程式庫,支援高階大規模的多維陣列與矩陣運算的數學函式函式庫。 NumPy 2.0.0 是自 2006 年以來的第一個主要發行版本,此重要版本標誌著 NumPy 發展歷程中的一項重要里程碑,為使用者提供了豐富的增強功能和改進,並為未來的功能開發奠定了基礎。
Thumbnail
介紹pygame支援的向量運算,以及向量的減法、乘法、除法實際上是怎麼計算的。
Thumbnail
介紹pygame支援的向量運算,以及向量的減法、乘法、除法實際上是怎麼計算的。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
在這篇文章中,我們講述瞭如何使用numpy.where方法查找Numpy數組中值的索引。除了介紹了numpy.where的基本用法外,還舉了一些應用實例進行了詳細說明。文章最後提供了其他應用領域以及相關參考文獻。
Thumbnail
在這篇文章中,我們講述瞭如何使用numpy.where方法查找Numpy數組中值的索引。除了介紹了numpy.where的基本用法外,還舉了一些應用實例進行了詳細說明。文章最後提供了其他應用領域以及相關參考文獻。
Thumbnail
NumPy在圖像處理、機器學習、數學和統計學等領域中被廣泛應用。 以下是一些常見的應用場景: 數據處理和分析: NumPy提供了高效的多維數組(nd array)和相應的操作函數,使得對大型數據集進行快速、有效的操作變得容易。
Thumbnail
NumPy在圖像處理、機器學習、數學和統計學等領域中被廣泛應用。 以下是一些常見的應用場景: 數據處理和分析: NumPy提供了高效的多維數組(nd array)和相應的操作函數,使得對大型數據集進行快速、有效的操作變得容易。
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News