Python数据分析学习笔记六

NumPy常用函数(2)


成交量加权平均价格(VWAP):

vwap是经济学上的一个重要量,代表了金融资产的平均价格。某个价格的成交量越高,该价格所占的权重就越大
示例:

import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(3,5),unpack=True)
vwap = np.average(c,weights=v)
print vwap

在代码中,我们首先通过loadtxt函数获取股票的收盘价和成交量,分别存储在c和v两个数组中,然后通过average函数进行加权平均价格的计算,计算的主体是c也就是收盘价,并且通过参数weights设定参考的权重为v,也就是成交量
输出结果:

6.37752357307

算数平均值

计算算数平均值我们可以有两种方法,第一种是利用刚刚的average函数,只需要将传入的weights参数去掉就可以了,第二种是利用numpy的mean函数:

import numpy as np

c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(3,5),unpack=True)
print np.average(c)
print np.mean(c)

输出结果为:

6.31413793103
6.31413793103

时间加权平均价格(TWAP)

这也是一种重要的经济学量。基本的思想就是最近的价格影响较大,对于近期的价格给予一个更大的权重,为了演示,我们使用一个自然增长序列表示权重,但是这并不是正确计算时间加权平均价格的一种好的方式,例:

import numpy as np

c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(3,5),unpack=True)
t = np.arange(len(c))//获取c的长度,依次建立自然增长数列
print np.average(c,weights=t)
print np.average(c,weights=v)
print np.mean(c)

在这里分别计算了000875这只股票的算术平均值、成交量加权平均值(vwap)和时间加权平均值(twap)
输出结果:

6.36517241379//时间加权平均值
6.37752357307//成交量加权平均值
6.31413793103//算数平均值

可以看出,时间加权平均值要小于成交量加权平均值,结合这只股票最近的走势:
000875近期的走势
可以看出时间加权平均值,在一定程度上反映了该股票最近一段时间的走势

取值范围和最大值、最小值

min函数和max函数,分别可以求取数组中的最大值和最小值。

import numpy as np

c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
high = np.max(c)
low = np.min(v)
print low
print high

该例中,修改读取的为股票每天的最高价放在c中,最低价放在v中,分别使用max函数求取c中的最高价,用min求取v 中最低价。
输出结果:

6.85
5.84

要求取值范围,可以使用ptp函数,返回的是数组中最大值和最小值之间的差值;

寻找中位数

寻找中位数比较方便,可以使用median函数,该函数会将数组进行排序,并且找到中位数,当数组总数为单数时,中位数即为处于数组中间的数,总数为双数时,即为位于中间的两个数的平方。

import numpy as np

c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
mid = np.median(c)
print mid

数组排序

数组排序使用msort函数会方便地实现

import numpy as np

c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
msort = np.msort(c)
print msort

计算数组方差

也就是数组中各数值的波动情况,可以使用var函数实现:

import numpy as np

c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
var = np.var(c)
print var
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值