量化投資與Python之NumPy

 

數組計算

NumPy是高性能科學計算和數據分析的基礎包。它是pandas等其餘各類工具的基礎。
NumPy的主要功能:
ndarray,一個多維數組結構,高效且節省空間
無需循環對整組數據進行快速運算的數學函數
*讀寫磁盤數據的工具以及用於操做內存映射文件的工具
*線性代數、隨機數生成和傅里葉變換功能
*用於集成C、C++等代碼的工具
安裝方法:pip install numpy
引用方式:import numpy as np

ndarray-多維數組對象

爲何要使用ndarray:
例1:已知若干家跨國公司的市值(美圓),將其換算爲人民幣
例2:已知購物車中每件商品的價格與商品件數,求總金額

建立ndarray:np.array()
ndarray是多維數組結構,與列表的區別是:
數組對象內的元素類型必須相同
數組大小不可修改
經常使用屬性:
T 數組的轉置(對高維數組而言)
dtype 數組元素的數據類型
size 數組元素的個數
ndim 數組的維數
shape 數組的維度大小(以元組形式)

ndarray-數據類型

ndarray數據類型:dtype:
布爾型:bool_
整型:int_ int8 int16 int32 int64
無符號整型:uint8 uint16 uint32 uint64
浮點型:float_ float16 float32 float64
複數型:complex_ complex64 complex128

ndarray-建立

建立ndarray:
array() 將列表轉換爲數組,可選擇顯式指定dtype
arange() range的numpy版,支持浮點數
linspace() 相似arange(),第三個參數爲數組長度
zeros() 根據指定形狀和dtype建立全0數組
ones() 根據指定形狀和dtype建立全1數組
empty() 根據指定形狀和dtype建立空數組(隨機值)
eye() 根據指定邊長和dtype建立單位矩陣

索引和切片

數組和標量之間的運算
a+1 a*3 1//a a**0.5
一樣大小數組之間的運算
a+b a/b a**b
數組的索引:
一維數組:a[5]
多維數組:
列表式寫法:a[2][3]
新式寫法:a[2,3] (推薦)
數組的切片:
一維數組:a[5:8] a[4:] a[2:10] = 1
多維數組:a[1:2, 3:4] a[:,3:5] a[:,1]
與列表不一樣,數組切片時並不會自動複製,在切片數組上的修改會影響原數組。 【解決方法:copy()】

布爾型索引

問題:給一個數組,選出數組中全部大於5的數。
答案:a[a>5]
原理:
a>5會對a中的每個元素進行判斷,返回一個布爾數組
布爾型索引:將一樣大小的布爾數組傳進索引,會返回一個由全部True對應位置的元素的數組

問題2:給一個數組,選出數組中全部大於5的偶數。
問題3:給一個數組,選出數組中全部大於5的數和偶數。
答案:
a[(a>5) & (a%2==0)]
a[(a>5) | (a%2==0)]

花式索引*

問題1:對於一個數組,選出其第1,3,4,6,7個元素,組成新的二維數組。
答案:a[[1,3,4,6,7]]
問題2:對一個二維數組,選出其第一列和第三列,組成新的二維數組。
答案:a[:,[1,3]]

通用函數

通用函數:能同時對數組中全部元素進行運算的函數
常見通用函數:
一元函數:abs, sqrt, exp, log, ceil, floor, rint, trunc, modf, isnan, isinf, cos, sin, tan
二元函數:add, substract, multiply, divide, power, mod, maximum, mininum, 

浮點數特殊值

 

浮點數:float
浮點數有兩個特殊值:
nan(Not a Number):不等於任何浮點數(nan != nan)
inf(infinity):比任何浮點數都大

 

NumPy中建立特殊值:np.nan np.inf
在數據分析中,nan常被用做表示數據缺失值

 

數學和統計方法

 

經常使用函數:
sum 求和
cumsum 求前綴和
mean 求平均數
std 求標準差
var 求方差
min 求最小值
max 求最大值
argmin 求最小值索引
argmax 求最大值索引

隨機數生成

隨機數生成函數在np.random子包內
經常使用函數
rand 給定形狀產生隨機數組(0到1之間的數)
randint 給定形狀產生隨機整數
choice 給定形狀產生隨機選擇
shuffle 與random.shuffle相同
uniform 給定形狀產生隨機數組

相關文章
相關標籤/搜索