金融量化: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的顺序

 

posted @ 2018-07-23 11:08  G500  阅读(126)  评论(0)    收藏  举报