NumPy介紹
NumPy是Python開源的科學計算工具包,提供多維數組運算,矩陣運算,為Python其他科學計算庫提供底層支持(pandas是基於numpy開發出來的更高級的數據分析包)
NumPy庫能夠對全量數組進行復雜運算,不需要寫Python遍歷循環實現計算,本身使用C語言實現,所以其內存使用更少、計算性能更強,性能好於Pyhton
NumPy多應用:生產隨機數、線性分佈、傅里葉變換等樣本數據!
NumPy 與 Python性能比較
輸出:
- NumPy用時: 25.9 ms
- Python用時: 1.04 s
ndarray,多維數組對象
NumPy核心數據結構是多維數組 ,即ndarray,所有數組操作都離不開ndarray
ndarray對象屬性介紹:
- .ndim 輸出數組維度的個數(軸數)
- .shape 數組的維度
- .size 數組元素總數
- .dtype 數組中元素的類型
- .itemsize 數組中每個元素的字節大小
數組的維數稱為秩,一維數組的秩為1,二維數組的秩為2
創建ndarray對象
0x01 np.array,創建多維數組
使用np.array方法創建數組,輸入參數可以是任意序列(列表、元組、數組、生成器以及numpy數組等)
0x02 np.arange,創建一維數組
使用np.arange()方法構建N維組數
一般使用np.arange()方法,先創建一個一維值序列,再使用reshape方法變換高維數組形狀
0x03 np.linspace,創建一維數組
使用linspace(start, stop, num=50,endpoint=True,retsep=False, dtype=None),返回在間隔【開始,結束】上計算的num個均勻間隔的數值樣本
- start:起始值,stop:結束值
- num,生產樣本數
- endpoint,為True,包含,為False,不包含
- retstep,為True,返回樣本步長,即樣本間隔長度,默認為False
0x04 np.zeros,生成全零數組
使用np.zeros方法生成全零數組,若創建高維數組,需要傳入元組參數
0x05 np.zeros_like
np.zeros_like方法,根據所給定的ndarray對象生成對應的全零數組
0x06 np.ones,生成全一數組
使用np.ones方法,生成全一數組,若創建高維數組,需要傳入元組參數
0x07 np.ones_like
np.ones_like方法,根據所給定的ndarray對象生成對應的全一數組
創建多維數組其他方法
- np.empty 生成沒有初始值的數組,若創建高維數組,需要傳入元組參數
- np.empty_like 根據所給定的ndarray對象生成沒有初始值的數組
- np.full 創建一個由常數填充的數組,第一個參數是數組,第二個參數是數組中填充的常數
- np.full_like 同上
- np.eye、np.identity生成NxN單位矩陣(左對角線是1,其他元素是0)
數組數據類型
ndarray對象中每個元素可以是以下任意數據類型:
說明:
- 可以在創建數組的時候,指定數據類型
- 可改變已有數組的數據類型,通過astype()方法,生成新的數組
示例代碼:
最後
如果內容有誤,歡迎評論區指正!
喜歡我的朋友們,麻煩點一波關注,謝謝!