利用Python進行數據分析(4) NumPy基礎: ndarray簡單介紹
- 2019 年 10 月 10 日
- 筆記
一、NumPy 是什麼
NumPy 是 Python 科學計算的基礎包,它專為進行嚴格的數字處理而產生。在之前的隨筆里已有更加詳細的介紹,這裡不再贅述。
IPython 發展到現在,它不僅僅只是一個加強版的 Python shell 了,它集成了 GUI 控制台,這可以讓你直接進行繪圖操作;它還有一個基於 Web 的互動式筆記型電腦和一個輕量級的快速並行的計算引擎。
二、ndarray 是什麼
ndarray 是一個多維的數組對象,具有矢量算術運算能力和複雜的廣播能力,並具有執行速度快和節省空間的特點。
ndarray 的一個特點是同構:即其中所有元素的類型必須相同。
三、ndarray 的創建
array() 函數
最簡單的方法是使用 numpy 提供的 array() 函數直接將 Python 數組轉換為 ndarray 數組,array() 接受一切序列類型的對象,例如將一個列錶轉換成 ndarray 數組:

zeros() 函數和 ones() 函數
這兩個函數分別可以創建指定長度或形狀的全0或全1的 ndarray 數組,比如:

empty() 函數
這個函數可以創建一個沒有任何具體值的 ndarray 數組,例如:

需要注意一點的是,這個函數返回的值不一定是 0,可能是其他未初始化的垃圾值。
arange() 函數
這個函數是 Python 內置函數 range 的數組版,使用方法:

四、ndarray 的數據類型
在創建 ndarray 數組的時候可以指定元素的數據類型,例如:
所支援的數據類型包括整數、浮點數、複數、布爾值、字元串或是普通的 Python 對象(object)。
在創建 ndarray 數組的時候,如未顯示指定類型,它會嘗試推斷出一個合適的數據類型。
類型轉換
通過 ndarray 的 astype() 方法進行強制類型轉換,浮點數轉換為整數時小數部分會被捨棄:

如果某字元串類型的數組裡的元素全是數字,也可以通過此方法直接轉換成數值類型:

astype 會創建一份新的數組,即便是指定為同類型也依然如此。
五、ndarray 的簡單使用
使用 ndarray 數組可以讓我們不需要使用循環就可以對列表裡的元素執行操作,語法和對標量元素的操作一樣,例如:
