当前位置:   article > 正文

Python Numpy 学习笔记(3)_使用numpy计算平均值中位数方差和标准偏差,从csv文件导入数据集

使用numpy计算平均值中位数方差和标准偏差,从csv文件导入数据集

Python数据分析基础教程:numpy 学习指南的第三章

数据从雅虎财经上下载的csv文件,格式与教程上的略有不同。

雅虎财经相关数据下载,https://hk.finance.yahoo.com/quote/AAPL/history?p=AAPL

我自己使用的数据已经上传。

1.导入csv文件以及相关数据

使用numpy导入相关csv文件

ApplData = loadtxt('C:/Users/wxh/PycharmProjects/untitled/practice/appldata.csv', dtype=str, delimiter=',')
文件是路径根据自己的调整。

由于csv文件中含有字符,所以读取的类型全部设置成字符型了。

之后对于每一个操作数据进行读取。

  1. OpenData = ApplData[1:, 1].astype(float) # 读入开盘价
  2. HighData = ApplData[1:, 2].astype(float) # 读入最高价
  3. LowData = ApplData[1:, 3].astype(float) # 读入最低价
  4. CloseData = ApplData[1:, 4].astype(float) # 读入成交价
  5. ADJCloseData = ApplData[1:, 5].astype(float) # 读入ADJ成交价
  6. VolumeData = ApplData[1:, 6].astype(int) # 读入成交量
对于每一列的数据进行切片操作,就可以得到完整数据了要进行数据类型的转换。

转换之后貌似有一点点数据小数位数的精度问题,目前还没解决。


之后是算术平均数以及加权平均数,中位数,方差,最大值,最小值,极差的相关计算。

  1. Avg_OpenData = mean(OpenData) # 开盘价的算数平均数
  2. VMAP = average(CloseData, weights=VolumeData) # 成交价与成交量的加权平均数
  3. Max_HighData = max(HighData) # 历史最高价的最大值
  4. Low_LowData = min(LowData) # 历史最低价的最小值
  5. Ptp_CloseData = ptp(CloseData) # 成交价的极差
  6. Median_CloseData = median(CloseData) # 成交价的中位数
  7. Var_CloseData = var(CloseData) # 成交价的方差
  8. Population_Variance_CloseData = nansum(((CloseData - mean(CloseData)) ** 2))/(len(CloseData) - 1)
  9. # 由概率论知识可得,样本的无偏估计量为离差平方和除以样本估计量-1

接下来是一下股票常用数据的计算。

  1. Rate_Return = diff(CloseData)/CloseData[:-1] # 股票收益率的计算
  2. StandardDeviation_Rate_Return = std(Rate_Return) # 收益率的标准差
  3. LogRate_Return = diff(log(CloseData)) # 对数收益率
  4. Index_Position = where(Rate_Return > 0) # 收益率大于0的索引
  5. Volatility_Annual = (std(LogRate_Return)/mean(LogRate_Return))/sqrt(1.0/252.0)
  6. # 股票的年波动率,对数收益率的标准差除以对数收益率的均值,再除以交易天数(252天)倒数的平方根
值得注意的是,diff是对于一个列表后一项减去前一项,也就是差分运算吧。

std是求标准差。

使用where可以找到符合条件的索引序号,有一点像sql里面的where。


这是完整的代码:

  1. # -*- coding:utf-8 -*-
  2. from numpy import *
  3. ApplData = loadtxt('C:/Users/wxh/PycharmProjects/untitled/practice/appldata.csv', dtype=str, delimiter=',')
  4. # 将股票数据文件读入,由于含有字符,所有的数据类型全部变为字符串型
  5. OpenData = ApplData[1:, 1].astype(float) # 读入开盘价
  6. HighData = ApplData[1:, 2].astype(float) # 读入最高价
  7. LowData = ApplData[1:, 3].astype(float) # 读入最低价
  8. CloseData = ApplData[1:, 4].astype(float) # 读入成交价
  9. ADJCloseData = ApplData[1:, 5].astype(float) # 读入ADJ成交价
  10. VolumeData = ApplData[1:, 6].astype(int) # 读入成交量
  11. Avg_OpenData = mean(OpenData) # 开盘价的算数平均数
  12. VMAP = average(CloseData, weights=VolumeData) # 成交价与成交量的加权平均数
  13. Max_HighData = max(HighData) # 历史最高价的最大值
  14. Low_LowData = min(LowData) # 历史最低价的最小值
  15. Ptp_CloseData = ptp(CloseData) # 成交价的极差
  16. Median_CloseData = median(CloseData) # 成交价的中位数
  17. Var_CloseData = var(CloseData) # 成交价的方差
  18. Population_Variance_CloseData = nansum(((CloseData - mean(CloseData)) ** 2))/(len(CloseData) - 1)
  19. # 由概率论知识可得,样本的无偏估计量为离差平方和除以样本估计量-1
  20. Rate_Return = diff(CloseData)/CloseData[:-1] # 股票收益率的计算
  21. StandardDeviation_Rate_Return = std(Rate_Return) # 收益率的标准差
  22. LogRate_Return = diff(log(CloseData)) # 对数收益率
  23. Index_Position = where(Rate_Return > 0) # 收益率大于0的索引
  24. Volatility_Annual = (std(LogRate_Return)/mean(LogRate_Return))/sqrt(1.0/252.0)
  25. # 股票的年波动率,对数收益率的标准差除以对数收益率的均值,再除以交易天数(252天)倒数的平方根







声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/142209?site
推荐阅读
相关标签
  

闽ICP备14008679号