python numpy学习笔记(7)

来源:互联网 发布:大数据统计图 编辑:程序博客网 时间:2024/06/15 12:02

这次介绍一些便捷函数。

一.协方差与矩阵对角函数和矩阵的迹(对角线矩阵元素之和)

# -*- coding:utf-8 -*-from numpy import *from matplotlib.pyplot import *bhp = loadtxt('BHP.csv', delimiter=',', usecols=(6,), unpack=True)vale = loadtxt('VALE.csv', delimiter=',', usecols=(6,), unpack=True)#   读取数据bhp_returns = diff(bhp) / bhp[: -1]vale_returns = diff(vale) / vale[ : -1]#   计算股票收益率variance= cov(bhp_returns, vale_returns)#   计算两只股票的协方差print varianceprint variance.diagonal()#   查看对角线上的元素print variance.trace()#   计算矩阵的迹,即对角线上元素的和t1 = arange(len(bhp_returns))plot(t1, bhp_returns, lw=1)plot(t1, vale_returns, lw=1.5)show()#   收益率绘图

二。多项式拟合

重点介绍了ployfit线性拟合函数,polyval求解值的函数,polyder求导函数,roots求根函数,argmax,argmin求解最大值最小值的函数。

# -*- coding:utf-8 -*-from numpy import *from matplotlib.pyplot import *bhp = loadtxt('BHP.csv', delimiter=',', usecols=(6,), unpack=True)vale = loadtxt('VALE.csv', delimiter=',', usecols=(6,), unpack=True)#   读取t = arange(len(bhp))poly = polyfit(t, bhp-vale, 3)#   用polyfit进行多项式拟合,x是t,bhp-vale是y,3是多项式最高项次数。print poly#   返回各项的系数print "next value",polyval(poly, t[-1] + 1)#   polyval求解值print "roots", roots(poly)#   求解方程的根der = polyder(poly)print "derivative", der#   对于多项式求导print "Extremas", np.roots(der)#   求解导函数,找到极值vals = polyval(poly, t)#   将t带入多项式的值,求解print argmax(vals)print argmin(vals)#   找到极大值极小值点plot(t, bhp - vale)plot(t, vals)show()#   画图数据


最后用一个15次的多项式拟合的结果。


三.判断一个数组的内容的正负号

sign和piecewise函数的运用

# -*- coding:utf-8 -*-from numpy import *c, v = loadtxt('BHP.csv', delimiter=',', usecols=(6, 7), unpack=True)#   读取数据change = diff(c)print "Change", change#   差分数组signs = sign(change)print "Signs", signs#   使用sign确定数组内容的正负pieces = piecewise(change, [change < 0, change > 0], [-1, 1])print "Pieces", pieces#   使用piecewise确定数组的正负,判断条件和对应的结果print "Arrays equal?", array_equal(signs, pieces)#   判断两个数组是否相同print "On balance volume", v[1:] * signs#   计算OBV净额成交量,成交量*收盘价决定的正负号



原创粉丝点击