金融量化:IPython、numpy
1、金融量化
# 金融量化
在线平台:聚宽、优矿、米筐、Quantopian
开源框架:rqalpha、quantaxis
# IPythonm 交互式的python命令行
安装: pip install ipython
# python 相关模块:
numpy 数值计算(高性能科学计算和数据分析的基础包,是pandas等其他各种工具的基础)
import numpy as np
ret = np.array() # 省内存
# ndarray 列表元素类型必须相同
# 查看列表占用多少内存(字节)
import sys
sys.getsizeof(ret)
# 查看列表元素类型
ret.dtype
# 存了多少数量
ret.size
# 多维统计数量(几行,几列)
ret.shape # (2,3)
# 查看是几维
ret.ndim
# 转置,把二维(2,3)变成(3,2)
ret.T
# 改变array数据类型 (默认 int32)
ret=ret.astype('float32') # 精度不够的话可以换成float64
# 将列表转换成array数组,并可选择dtype
np.array(list,dtype='float') # 默认根据机器自动选择位数
# numpy 的 数组 arange
np.arange(10)
np.arange(4,10,0.2) # 步长可以为小数
# 把指定范围内进行分份
np.linspace(0,10,15) # 把0-10 分成了15份
# 创建全零or全1的数组指定长度
np.zeros(10,dtype='int')
np.ones(10)
np.ones((10,5,3)) # 多维度
np.empty(10) # 不进行赋值(原内存的数据可能会存在里面,但未进行赋值)
# 将数组变成多维度(数组元素一定要刚好够用)
np.arange(15)
a = _
a.reshape(3,5)
# 切片跟列表一样,额外支持的操作(切片的内容不会自动复制,修改会改变原内容)
a.[:2,1:3] # 左行右列
b = a[:4].copy() # 拷贝切片
# 布尔型索引
a[a<5] # 取出a小于5的元素
a[(a>5) & (a%2==0)] # 取出a大于5并且是偶数
a[(a>5) | (a%2==0)] # 取出a大于5 或则是偶数
a[(~a<5)] # 非 a小于5
# 花式索引
a[[1,2,3,5,7]] # 一次取多个索引元素
# 通用函数(能同时对数组中所有元素进行运算的函数)
np.round(a) # 四舍五入
np.trunc(3.1) # 向零取整
a,b = np.modf(c) # 把整数和小数拆开
np.isnan(c) # 判断c里有没有nan ,有的话索引位置返回True
c[~np.isnan(c)] # 取出不是nan的元素
np.maxinum(a,b) # 取a和b相同位置上最大的数
np.mininum(a,b) # 相反
# 数学和统计方法
a.mean() # 取平均值
a.argmin # 返回最小值的索引
a.argmax # 相反
a.cumsum() # 累积和(当前位置和前一个位置相加值)
# 随机数生成
random.uniform(1.0,10.0) # 1.0-2.0
random.shuffle(a) # 随机打乱a的顺序

浙公网安备 33010602011771号