import numpy as np_量化投资必备技能一:NumPy数据处理

1e69b6cd2cc29536e50fafb5f259702c.gif

e44e7b06954ab68d3c45bed64fc245d1.png

本文目标对象

零基础编程小白

读完本文你将收获

 开始用numpy解决学习工作中的具体问题

什么是Numpy

542fe0e6e4f2dc935b944132e140d5df.png

Numpy 是Python语言的一个基础库(library),专为数据处理而生,是金融量化的必学工具。初入量化领域的你对高效处理金融数据一定充满憧憬,但遇到现实问题的时候,你却常常有如下的疑问:

或许你在纠结怎么处理金融数据处理?

或许你想知道怎么更快更有效率的运算数据?

或许你想知道怎么设计逻辑判断条件选股?

又或许你想了解Python不同库直接的交互关系?

那么,就让我们走进Numpy库,开始量化金融数据处理的第一步!

为什么要学Numpy

NumPy是python语言中使用最频繁的基础库之一,主要是进行各种数据计算处理,是每一个接触量化领域的人士必修之库。NumPy包含:

(1)一个强大的 N 维数组对象,对其进行数组、元素级的运算

(2)Numpy函数更加适应更加复杂的金融数据处理

(3)含有用于整合 C、C++、Fortran 代码的工具

(4)可实现线性代数、傅里叶变化、随机数生成等功能

(5)是SciPy和 Matplotlib等库的基础库,交互使用

以上都是一名合格的Quant必备技能。现在,让我们使用import语句导入numpy模块吧!

NumPy有哪些功能

455abdaa57d26f5728b4e470b84fa938.png

数据创建

3c53ef976c2e420ec4e4af17159bb21e.png

常规创建方式

np.array()函数,使用numpy中array函数将可迭代对象转化为ndarray类型以备后续计算

np.arange()函数,使用numpy中arange函数直接生成ndarray数据,运算逻辑类似range()内置函数。

np.arange(n)返回一个可产生从0到n(不含n),步长为1数字的ndarray。

np.arange(a, b, s)返回一个可产生从a到b(不含b),步长为s数字的ndarray。

创建特殊ndarray

np.ones生成一个形状如传入参数,元素均为1的ndarray。

np.random利用该模块内的函数生成形状如传入参数,元素符合对应分布的ndarray。

np.random.randn(a)生成a*1的ndarray,其值符合正态分布。

455abdaa57d26f5728b4e470b84fa938.png

数学运算

3c53ef976c2e420ec4e4af17159bb21e.png

用np.abs函数对ndarray中每一个元素求绝对值。

用np.sqrt函数对ndarray中每个元素求平方根。

用np.exp函数对ndarray中每个元素求指数幂。

用np.log函数对ndarray中每个元素求自然对数。

用np.sign函数对ndarray中每个元素的符号进行判断。 

455abdaa57d26f5728b4e470b84fa938.png

聚合运算

3c53ef976c2e420ec4e4af17159bb21e.png

求最大值:np.max函数与array.max方法等价。

求最大值索引:np.argmax函数与array.argmax方法等价。

求最小值:np.min函数与array.min方法等价。

求最小值索引:np.argmin函数与array.argmin方法等价。

求和:np.sum函数与array.sum方法等价。

求积:np.prod函数和array.prod方法等价。

求均值:np.mean函数与array.mean方法等价。

求中位数:np.median返回沿特定轴的中位数。

求标准差:np.std函数与array.std方法等价。

求方差:np.var函数与array.var方法等价。 

455abdaa57d26f5728b4e470b84fa938.png

累计运算

3c53ef976c2e420ec4e4af17159bb21e.png

累计和:np.cumsum函数与array.cumsum方法等价。

累积乘积:np.cumprod函数与array.cumprod方法等价。 

455abdaa57d26f5728b4e470b84fa938.png

逻辑运算

3c53ef976c2e420ec4e4af17159bb21e.png

np.all函数:ndarray中每一个元素都为True,则返回True。

np.any函数:ndarray中有一个元素为True,则返回True。

np.logical_and函数: 对多个ndarray中每一个元素进行并列判断,如果并列的每一个元素全为True,则返回True。

np.logical_or函数: 对多个ndarray中每一个元素进行异或判断,如果有一个元素为True,则返回True。 

455abdaa57d26f5728b4e470b84fa938.png

数据操作

3c53ef976c2e420ec4e4af17159bb21e.png

位置索引:根据位置获取ndarray的某一个值,类似list使用方法。

Bool值索引:使用bool值进行索引,True则获取对应ndarray中的元素,False则不获取,最终返回ndarray。

455abdaa57d26f5728b4e470b84fa938.png

数据规整化

3c53ef976c2e420ec4e4af17159bb21e.png

排序:np.sort函数对ndarray中元素进行排序,默认为升序排列。

维度调整:np.reshape函数对ndarray中元素进行维度调整,调整为输入参数形状。

转置:np.transpose函数对ndarray进行转置。

拼接:np.concatenate函数对ndarray进行拼接。

NumPy具体如何操作

Numpy提供了强大的N维数组对象,除了基本了数学运算,还有针对数组级别的聚合计算和累计计算,比如在量化交易中:

A. 运用np.where等逻辑判断函数进行条件选股

B. 运用np.cumsum等累计函数结合基础运算函数计算 收益率

C. 运用位置索引和bool索引提取所需交易量和价格数据

D. 数据规整化类的函数,对股票指标进行排序,调整、拼接等操作

理解了Numpy库才能更好地运用后续将要学习的Pandas库,因为Pandas本质上也是由一个个Ndarray(多维数组)构成,不熟悉Numpy库,就像手无寸铁的新兵,在枪林弹雨的数据面前手足无措。

如果还不知道怎么能快速掌握这门必杀技,快点加入“一量学院”,拿起Numpy这项武器,在量化金融市场中披荆斩棘。

一量学院

史上最全的量化交易策略课程

第一部分:经典量化策略

量化择时的策略设计方法

1. 均线模型策略

2. 随机指标模型

3. 技术指标背离策略

4. 通道突破策略

动量与反转

1. 惯性和均值回归思想

2. 动量策略

3. 反转策略

如何做基金套利

1. QDII-LOF基金套利

2. 分级基金套利

3. 基金跨境套利

4. 基金跨资产/品种套利

宏观择时与行业轮动

1. 宏观择时策略

2. 全球宏观对冲策略

3. 美林时钟周期

4. 宏观因子择时

5. 行业轮动策略

热门的多空Alpha与事件驱动策略

1. 多空Alpha策略

2. 对冲基金策略

3. 事件驱动策略

4. 多因子价值策略

第二部分:期货CTA量化交易策略

经典趋势策略

1. CTA趋势策略之菲阿里四价和Dual-Thrust

2. CTA趋势策略之ATR突破和R-Breaker

3. CTA趋势策略之中长线日间交易

4. CTA趋势策略之择时-修正TD模型

5. CTA趋势策略之海龟交易法则

经典套利策略

1. CTA统计套利

2. CTA期现套利策略

3. CTA跨期、跨市场、跨品种套利策略

第三部分:机器学习策略

1. 大数据与舆情分析策略

2. 机器学习策略设计

3. 隐马尔可夫模型和支持向量机

4. 深度学习策略设计

第四部分:高阶策略

1. 高频策略与算法交易

2. 期权与衍生品交易策略设计

3. 期权宽跨式套利策略

4. 期权期货平价套利

5. 资产配置与复合策略设计

6. 均值方差模型

7. Black-litterman模型

8. 风险平价策略

441e4127a25b4da0755c6a24e79a1c43.png

- END -

cc17c2c4cb31b03046d3421fc88b036d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值