NumPy

Numpy 為Python提供了基礎的線性代數運算,包含了array, matrix, vector。加強了Python對於Big data的處理能力與速度,也方便使用者進行統整,並深入做資料分析。

使用import numpy as np方式匯入NumPy模組

Homogeneous Multidimensional Array

這是NumPy 中最主要的資料結構。Homogeneous 表示陣列中的資料將是同一類型(大多是numbers),Multidimensional 則顯示出這可以是N層的陣列。

1
2
3
4
import numpy as np
x = [[1, 2, 3], [4, 5, 6]]
np_x = np.array(x)
print(type(np_x)) #=> 'numpy.ndarray'

np.array()來將List轉換為 ndarray,這裡的nd表示N-Dimensional,所以無論要創造多少層的array都可以。

  • ndarray.ndim : array的階層數,稱為 rank
  • ndarray.shape : 顯示array的架構。若是matrix(2D)則以(row, column) tuple的方式呈現。而此tuple的長度即rank。
  • ndarray.size : 回傳array的elements總數

以上面的np_x為例,他是一個rank = 2的array,也就是2D array。他有2個rows、3個columns,當想要選擇array中的某個項目,可以使用np_x[row, column]來進行選取。

像是np_x[1,2]就能選到6,因為他屬於第row=2, column=3(index由0開始)。

而若想選出每個row的第一個column,則可以np_x[:, 0]來表示,將會回傳值為[1,4]的array。

Array Creation

除了上述的np.array(list)將List做轉換以外,還有以下幾個直接建立array的方法:

  • np.zeros((2,3)) : 將創造一個被0.充滿,且row=2, column=3的array
  • np.ones((2,3)) : 與上列相同,只是變成被1.充滿。 特別注意:預設的dtype是float,可用np.ones((2,3), dtype=int16)將dtype轉為integer
  • np.empty((2,3)) :將根據記憶體空間隨機產生內容
  • np.arange(10, 30, 5) : 與range類似,將得到array([10, 15, 20, 25])
  • np.linspace(s, e, n) : 包含s與e,在這之間產生n個數字,間隔相同。所以dtype會是float

參考連結

  1. NumPy Tutorial
  2. Data Camp 課程: Intro to Python for Data Science