NumPy基礎
最近的爬蟲學習告一段落,後續補上爬蟲的筆記。現在到資料分析部分,先從NumPy開始(環境python-3.6.5) 2019/1/23
NumPy基礎
NumPy是高效能科學計算和資料分析的基礎包。包括以下幾個功能:
- ndarray,一個具有向量算術運算和複雜廣播能力的快速且節省空間的多維陣列;
- 用於對整組資料進行快速運算的標準數學函式(無需編寫迴圈);
- 用於讀寫磁碟的工具以及用於操作記憶體對映檔案的工具;
- 線性代數,隨機數生成以及傅立葉變換功能;
- 用於整合由C,C++,Fortran等語言編寫的程式碼的工具。
例子引入
用python原生程式碼對兩個向量相加
def pythonsum(n): a = list(range(n)) b = list(range(n)) c = [] for i in range(len(a)): a[i] = i ** 2 b[i] = i ** 3 c.append(a[i] + b[i]) return c arr = pythonsum(2) print(arr)
利用NumPy對向量相加。
import numpy as np def numpysum(n): a = np.arange(n) ** 2 b = np.arange(n) ** 3 c = a + b return c arr = numpysum(2) print(arr)
兩種方法都可以對向量進行相加,相比而言利用NumPy庫的程式碼會更簡潔一點。可以對兩種方法計算出執行時間,結果也是NumPy的效率高些。
ndarray,多維陣列物件
NumPy中的ndarray是一個多維陣列物件,這個物件是一個快速而且靈活的大資料集容器,該物件由兩個部分組成:
- 實際的資料
- 描述這些資料的元資料
ndarray
是一個通用的同構資料多維容器,指的是其中的元素
必須是相同
的資料型別,每一個數組都有一個shape
(表示各維度大小的元組)和一個dtype
(用於說明資料型別的物件)。
In [12]: import numpy as np In [13]: a = np.arange(5) In [14]: a.dtype Out[14]: dtype('int32') In [15]: a.shape Out[15]: (5,) In [16]: a Out[16]: array([0, 1, 2, 3, 4])
NumPy中建立陣列的函式
函式 | 說明 | |
---|---|---|
array | 將輸入資料(元組,列表或其他序列型別)轉換為ndarray。要麼推斷出dtype,要麼顯示指定dtype。預設直接複製輸入資料 | |
asarray | 將輸入轉換為ndarray,如果輸入就是一個ndarray就不進行復制 | |
arange | 類似內建的range,但返回的是一個ndarray而不是一個列表 | |
ones,ones_like | 根據指定的形狀和dtype建立一個全是1的陣列。ones_like以另一個數組為引數,並根據其形狀和dtype建立一個全為1的陣列 | |
zeros,zeros_like | 類似於ones,ones_like,只不過建立的是全為0的陣列 |