當前位置:成語大全網 - 書法字典 - 為什麽NumPy數組如此高效?

為什麽NumPy數組如此高效?

NumPy是Python科學計算的基本包。它提供了多維數組對象和各種基於數組的派生對象(例如,掩碼數組、矩陣)。除此之外,它還提供了加速數組運算的各種例程,包括基本的數學計算、邏輯、圖形運算、排序、選擇、輸入輸出、離散傅立葉變換、基本線性代數、基本統計運算、隨機模擬等等。

NumPy的核心是ndarray對象。壹方面,Ndarray對象封裝了可以包含相同數據類型的多維數組;另壹方面,為了獲得更好的性能,對ndarray的操作都是在編譯好的代碼上進行的。另外,與Python自帶的sequence對象相比,它們之間還有以下區別:

1的大小。NumPy數組是固定的。Python的列表可以動態增長。更改NumPy的大小將重新創建壹個新數組,並刪除原始數組。

2.Numpy數組中的元素必須屬於同壹類型。(因此,每個元素占用相同數量的內存。例外是:(沒有特別理解:可以有(python,包括numpy)對象的數組,允許不同大小元素的數組。)

3.NumPy數組支持對大量數據進行數學計算和其他類型的操作。壹般來說,對NumPy數組的操作比Python自己的序列類型執行起來更有效,代碼也更少。

4.越來越多的Python科學計算包使用NumPy的數組;雖然這些庫支持Python序列類型的輸入,但是內部操作還是需要先轉換成NumPy的數組類型,輸出通常是NumPy數組。所以,想要高效的使用這些Python科學計算包,僅僅知道Python內置的序列類型是不夠的。您還需要知道如何使用NumPy數組。

最後,NumPy完全支持面向對象的範例。例如,ndarray是壹個具有許多方法和屬性的類。它的許多方法被映射到最外層NumPy名稱空間中的函數。這樣可以給程序員更多的自由:程序員可以選擇是用面向對象的方式還是用面向過程的方式來使用這些接口。