Python数据分析学习笔记六

来源:互联网 发布:p2p网络引擎删除电影 编辑:程序博客网 时间:2024/04/24 18:24

NumPy常用函数(2)


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

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

import numpy as npc,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 npc,v = np.loadtxt("000875.csv",delimiter=',',usecols=(3,5),unpack=True)print np.average(c)print np.mean(c)

输出结果为:

6.314137931036.31413793103

时间加权平均价格(TWAP)

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

import numpy as npc,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 npc,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)high = np.max(c)low = np.min(v)print lowprint high

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

6.855.84

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

寻找中位数

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

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

数组排序

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

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

计算数组方差

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

import numpy as npc,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)var = np.var(c)print var
0 0