利用tushare进行对兴业银行股价的爬取,并使用numpy进行分析
- import sys
import tushare as ts
import numpy as np
data=ts.get_h_data('601066')
print(data)
#读出兴业银行7列数据
date open high close low volume amount
- data.to_csv('E:/csv statistic/day/601066.csv') 把读取的股票数据存入某个内存空间中
- #开始读某列数据
- c,v=np.loadtxt('E:/csv statistic/day/601066.csv', skiprows=1,delimiter=',',usecols=(3,5),unpack=True)#收盘价,交易量
vwap=np.average(c,weights=v)#成交量加权平均值,
print('vwap=',vwap)
vwap= 9.63994147552952
print(np.mean(c))
9.0965625- #计算时间加权平均值
t=np.arange(len(c))
print(np.average(c,weights=t))
9.534940476190476
- #寻找最大值和最小值
h,l=np.loadtxt('E:/csv statistic/day/601066.csv', skiprows=1,delimiter=',',usecols=(2,4),unpack=True)
print(np.max(h))
11.98
print(np.min(l))
6.5
- #计算中程数和极差
print(np.max(h)+np.min(l)/2)#计算中程数
print(np.ptp(h))#计算最大值和最小值的差值
print(np.ptp(l))#计算交易量化的差值
15.254999999999999
4.19
4.92
#统计分析c=np.loadtxt('E:/csv statistic/day/601066.csv', skiprows=1,delimiter=',',usecols=(3,),unpack=Trueprint(np.median(c))#中间数
8.850000000000001
print('sorted:',np.msort(c))#从小到大排列
- sorted: [ 7.77 7.83 7.87 7.92 7.95 8. 8.06 8.15 8.17 8.19 8.2 8.2 8.23 8.27 8.28 8.32 8.32 8.35 8.36 8.36 8.36 8.36
8.48 8.5 8.53 8.53 8.54 8.55 8.61 8.61 8.64 8.82 8.88 9.09 9.15 9.37 9.38 9.38 9.39 9.45 9.45 9.48 9.52 9.67 9.7 9.73 9.8 9.83
9.86 9.91 9.93 10.06 10.23 10.27 10.31 10.33 10.33 10.41 10.42 10.56 10.8 11.09 11.46 11.85]
- print('方差:',np.var(c))
方差: 0.9610756835937502
print('手动计算方差:',np.mean((c-c.mean())**2))
手动计算方差: 0.9610756835937502
- #股票收益率的计算
c=np.loadtxt('E:/csv statistic/day/601066.csv', skiprows=1,delimiter=',',usecols=(3,),unpack=True)
returns=np.diff(c)/c[:-1] #diff计算差分,总体是求股票收益率
print(np.std(returns)) # 求标准差
log_returns=np.diff(np.log(c)) #股票对数收益率
print(log_returns)
posretindices=np.where(returns>0)#股票收益率大于0的那几天
print(posretindices)
ann_vol=np.std(log_returns)/np.mean(log_returns)#日收益率
print(ann_vol)
ann_vol=ann_vol/np.sqrt(1./252.)#年收益率
print(ann_vol)
print(ann_vol*np.sqrt(1./12.))#月收益率
- #定义一个 把日期转换为数字的函数
from datetime import datetime
def date2num(s):
return datetime.strptime(s,'%Y-%m-%d').date().weekday()
#读取收盘价
close=np.loadtxt('E:/csv statistic/day/601066.csv', skiprows=1,delimiter=',',usecols=(3,),unpack=True)
#读取日期
dates=np.loadtxt('E:/csv statistic/day/601066.csv', skiprows=1,delimiter=',',usecols=(0,),unpack=True,dtype=bytes).astype(str)
#读取的str数据转换为 数字
for i in range (dates.size):
dates[i]=date2num(dates[i])
dates=dates.astype(np.int8)
print(dates.dtype)
print(dates)
- averages = np.zeros(5) # 定义一个空数组
# 依次获取不同天的索引,然后根据索引求得close(收盘价)数组中所有的对应值,计算平均值,把平均值加入到averages数组中
for i in range(5):
indices = np.where(dates == i)
prices = np.take(close, indices)
avg = np.mean(prices)
print("Day", i, "prices", prices, "Average", avg)
averages[i] = avg
top = np.max(averages) # 计算周每日的收盘价平均值的最大值
np.argmax(averages) # 获取周每日的收盘价平均值的最大值是哪一天
bottom = np.min(averages) # 计算周每日的收盘价平均值的最小值
np.argmin(averages) # 获取周每日的收盘价平均值的最小值是哪一天
利用tushare进行对兴业银行股价的爬取,并使用numpy进行分析的更多相关文章
- Python 爬取淘宝商品数据挖掘分析实战
Python 爬取淘宝商品数据挖掘分析实战 项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 爬取淘宝商品 ...
- 利用Python3的requests和re库爬取猫眼电影笔记
以下笔记,作为参考借鉴,如有疑问可以联系我进行交流探讨! 代码思路很简单,简单概括为: 首先利用requests的get方法获取页面的html文件,之后对得到的html文件进行相对应的正则处理,然 ...
- 利用python的requests和BeautifulSoup库爬取小说网站内容
1. 什么是Requests? Requests是用Python语言编写的,基于urllib3来改写的,采用Apache2 Licensed 来源协议的HTTP库. 它比urllib更加方便,可以节约 ...
- 毕设之Python爬取天气数据及可视化分析
写在前面的一些P话:(https://jq.qq.com/?_wv=1027&k=RFkfeU8j) 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向. ...
- Python爬虫使用lxml模块爬取豆瓣读书排行榜并分析
上次使用了BeautifulSoup库爬取电影排行榜,爬取相对来说有点麻烦,爬取的速度也较慢.本次使用的lxml库,我个人是最喜欢的,爬取的语法很简单,爬取速度也快. 本次爬取的豆瓣书籍排行榜的首页地 ...
- 常用正则表达式爬取网页信息及HTML分析总结
Python爬取网页信息时,经常使用的正则表达式及方法. 1.获取<tr></tr>标签之间内容 2.获取<a href..></a>超链接之间内容 3 ...
- python实例:自动爬取豆瓣读书短评,分析短评内容
思路: 1.打开书本“更多”短评,复制链接 2.脚本分析链接,通过获取短评数,计算出页码数 3.通过页码数,循环爬取当页短评 4.短评写入到txt文本 5.读取txt文本,处理文本,输出出现频率最高的 ...
- python爬取B站视频弹幕分析并制作词云
1.分析网页 视频地址: www.bilibili.com/video/BV19E… 本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀. 这次我选取的是自己 唯一的爆款 ...
- 团队-爬取豆瓣电影TOP250-需求分析
需求: 1.搜集相关电影网址 2.实现相关逻辑的代码 项目步骤: 1.通过豆瓣网搜索关键字,获取相关地址 2.根据第三方包实现相关逻辑
随机推荐
- MySQL注入与防御
1.简介 1.1.含义 在一个应用中,数据的安全无疑是最重要的.数据的最终归宿都是数据库,因此如何保证数据库不被恶意攻击者入侵是一项重要且严肃的问题! SQL注入作为一种很流行的攻击手段,一直以来都受 ...
- node.js cluster模式启用方式
众所周知,Node.js运行在Chrome的JavaScript运行时平台上,我们把该平台优雅地称之为V8引擎.不论是V8引擎,还是之后的Node.js,都是以单线程的方式运行的,因此,在多核心处理器 ...
- java.util.LinkedHashMap cannot be cast to xxx 和 net.sf.ezmorph.bean.MorphDynaBean cannot be cast to xxx
java.util.LinkedHashMap cannot be cast to com.entity.Person 使用mybatis, resultMap映射的是实体类Person, 查询出来的 ...
- MATLAB—求直线或者线段之间的交点坐标
function CrossPoint( ) %% 求两条直线的交点坐标 x1 = [7.8 8]; y1 = [0.96 0.94]; %line2 x2 = [8.25 8.25]; y2 = [ ...
- win21api、win32gui、win32con三个模块操作系统窗口时一些小技巧
下面这段脚本是操作一个浏览器上弹窗,打开文件窗口,由于脚本 执行速度快,当时未添加第2行的延时时,脚本顺利的执行成功,但弹的窗却没有进行操作,建议后续如果脚本执行到打开弹窗时,延时个几秒再去操作所弹窗 ...
- flex布局大讲解
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool
- 关于this的理解
var o = { a:10, b:{ a:12, fn:function(){ console.log(this.a); //undefined console.log(this); //windo ...
- P3399 丝绸之路 dp
题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚.西亚和欧洲,将那里的香 ...
- Java面试知识点之计算机网络篇(一)
前言:在Java面试中,计算机网络的知识也是一项重点,因此笔者在此对计算机网络的相关知识进行总结. 1.OSI参考模型 自下而上:物理层(物理介质,比特流).数据链路层(网卡.交换机).网络层(IP协 ...
- 【BZOJ3451】Normal
[BZOJ3451]Normal Description 某天WJMZBMR学习了一个神奇的算法:树的点分治! 这个算法的核心是这样的: 消耗时间=0 Solve(树 a) 消耗时间 += a 的 大 ...