1. 程式人生 > >量化交易入門筆記-Numpy庫

量化交易入門筆記-Numpy庫

Numpy 庫是高效能科學計算和資料分析的基礎包,不是 Python 的標準庫,是 Python 的第三方庫。

這裡使用JoinQuant量化交易平臺免費提供的基於 IPython Notebook 的研究平臺

ndarray 陣列基礎

Python 中用列表儲存一組值,可將列表當作陣列使用。此外,Python 有 array 模組,但它不支援多維陣列,無論是列表還是 array 模組都沒有科學運算函式,不適合做矩陣等科學計算。因此,Numpy 沒有使用 Python 本身的陣列機制,而是提供了 ndarray 陣列物件,該物件能不斷方便地存取陣列,而且擁有豐富的陣列計算函式,比如向量的加法、減法、乘法等

首先要匯入 Numpy 庫

# 直接匯入 Numpy 函式庫
import numpy
# 匯入 Numpy 函式庫並指定別名,這個更常用,np是約定好的叫法
import numpy as np

建立 Numpy 陣列

numpy1 = np.array([[10, -8, 10.5], [-4, 6.0, 9.6]])

通過 array() 函式定義陣列例項物件,其引數是 Python 的序列物件(比如列表)

如果想定義多維陣列,則傳遞多層巢狀序列

接下來的示例將在平臺的“我的策略/投資研究”中進行,首先建立一個 Python3檔案

接下來,檢視陣列的行數、維數、資料等屬性

Numpy 特殊陣列

在 Numpy 陣列中,有3種特殊陣列,分別是 zero 陣列、ones 陣列、empty 陣列

通過 np.zeros建立都是0的陣列,引數中傳一個元組,4表示4行,5表示5列,如下圖:

同理,可以建立全都是1的陣列,這裡建立6行2列:

再建立一個2行5列的空值陣列;不同的是,這裡建立的資料並不都是空的,而都是近似於0的資料

Numpy 序列陣列

arange函式與 Python 中的 range 函式相似,但它屬於 Numpy 庫,其引數依次為:開始值、結束值、步長

還可以使用 linspace 函式建立等著序列陣列,其引數依次為:開始值、結束值、元素數量

利用arange函式建立等著序列陣列,這裡指定的開始值為1,結束值為80,步長為4

利用linspace函式建立等著序列陣列,這裡指定的開始值為1,結束值為3,一共建立13個值(也就是將0到3平均分成13份後的數值)

Numpy 陣列索引

Numpy 陣列的每個元素、每行元素、每列元素都可以通過索引訪問

Numpy 陣列運算

Numpy 陣列運算是指 Numpy 陣列中元素的加、減、乘、除、乘方、最大值、最小值等運算

Numpy 陣列複製

Numpy 陣列複製分兩種,一種是淺複製,一種是深複製

淺複製通過陣列變數的複製完成,只複製陣列的引用,這樣對淺複製陣列中的元素進行修改時,原陣列中對應的元素也會被修改

深複製使用陣列物件的copy方法完成,是對儲存記憶體進行復制。這樣對深 複製陣列中的元素進行修改時,原陣列中對應的元素不會改變

淺複製:

深複製:

矩陣

**矩陣(Matrix)**是一個按照長方陣列排列的複數或實數集合,是高等數學中的常見工具,也常見於統計分析等應用數學學科中

Numpy 的矩陣物件與陣列物件相似,主要不同之處在於,矩陣物件的計算遵循矩陣數學運算規律,即矩陣的乘、轉置、示逆等。需要注意的是,矩陣使用 matrix 函式建立

注:本文章為個人學習筆記,參考了一些書籍與官方教程,不作任何商業用途!