­

利用Python進行數據分析(4) NumPy基礎: ndarray簡單介紹

  • 2019 年 10 月 10 日
  • 筆記

一、NumPy 是什麼

NumPy 是 Python 科學計算的基礎包,它專為進行嚴格的數字處理而產生。在之前的隨筆里已有更加詳細的介紹,這裡不再贅述。

IPython 發展到現在,它不僅僅只是一個加強版的 Python shell 了,它集成了 GUI 控制台,這可以讓你直接進行繪圖操作;它還有一個基於 Web 的互動式筆記型電腦和一個輕量級的快速並行的計算引擎。

利用Python進行數據分析(1) 簡單介紹

二、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 數組可以讓我們不需要使用循環就可以對列表裡的元素執行操作,語法和對標量元素的操作一樣,例如: