量化编程技术—numpy与统计学
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: import numpy as np # 200支股票 stock_cnt = 200 # 504个交易日 view_days = 504 # 生成服从正态分布:均值期望=0,标准差=1的序列 stock_day_change = np.random.standard_normal((stock_cnt, view_days)) # 使用沙盒数据,目的是和书中一样的数据环境,不需要注视掉 # stock_day_change = np.load('../gen/stock_day_change.npy') # 打印shape (200, 504) 200行504列 print(stock_day_change.shape) # 打印出第一支只股票,头五个交易日的涨跌幅情况 print(stock_day_change[0:1, :5]) 3.1.3 索引选取和切片选择 # 0:2第一,第二支股票,0:5头五个交易日的涨跌幅数据 stock_day_change[0:2, 0:5] 3.1.4 数据转换与规整 # 2代表保留两位小数 np.around(stock_day_change[0:2, 0:5], 2) 3.1.5 逻辑条件进行数据筛选 mask = stock_day_change[0:2, 0:5] > 0.5 print(mask) 3.1.6 通用序列函数 # np.all判断序列中的所有元素是否全部是true, 即对bool序列进行与操作 # 本例实际判断stock_day_change[0:2, 0:5]中是否全是上涨的 np.all(stock_day_change[0:2, 0:5] > 0) # np.any判断序列中是否有元素为true, 即对bool序列进行或操作 # 本例实际判断stock_day_change[0:2, 0:5]中是至少有一个是上涨的 np.any(stock_day_change[0:2, 0:5] > 0) # 对两个序列对应的元素两两比较,maximum结果集取大,相对使用minimum为取小的结果集 np.maximum(stock_day_change[0:2, 0:5], stock_day_change[-2:, -5:]) # array([[ 0.38035486, 0.12259674, -0.2851901 , -0.00889681, 0.45731945], # [ 0.13380956, 2.03488293, 1.44701057, -0.92392477, 0.96930104]]) change_int = stock_day_change[0:2, 0:5].astype(int) print(change_int) # 序列中数值值唯一且不重复的值组成新的序列 np.unique(change_int) # diff 前后临近数据进行减法运算 # axis=1 np.diff(stock_day_change[0:2, 0:5]) # 唯一区别 axis=0 np.diff(stock_day_change[0:2, 0:5], axis=0) #where 数据筛选 tmp_test = stock_day_change[-2:, -5:] print(np.where(tmp_test > 0.5, 1, 0)) 统计概念与函数使用 stock_day_change_four = stock_day_change[:4, :4] print('最大涨幅 {}'.format(np.max(stock_day_change_four, axis=1))) print('最大跌幅 {}'.format(np.min(stock_day_change_four, axis=1))) print('振幅幅度 {}'.format(np.std(stock_day_change_four, axis=1))) print('平均涨跌 {}'.format(np.mean(stock_day_change_four, axis=1))) 3.2.2 统计基础概念 a_investor = np.random.normal(loc=100, scale=50, size=(100, 1)) b_investor = np.random.normal(loc=100, scale=20, size=(100, 1)) # a交易者 print('交易者期望{0:.2f}元, 标准差{1:.2f}, 方差{2:.2f}'.format(a_investor.mean(), a_investor.std(), a_investor.var())) # b交易者 print('交易者期望{0:.2f}元, 标准差{1:.2f}, 方差{2:.2f}'.format(b_investor.mean(), b_investor.std(), b_investor.var())) 正态分布 伯努利分布
量化编程技术—numpy与统计学的更多相关文章
- 量化编程技术—matplotlib与可视化
import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D np.random ...
- 量化编程技术—pandas与数据分析
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: import numpy as np stock_cnt = 200 view_day ...
- 量化编程技术—itertools寻找最优参数
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: ''' 在量化数据处理中,经常使用itertools来完成数据的各种排列组合以寻找最优 ...
- 量化编程技术—pdb进行调试
# -*- coding: utf-8 -*- # @Date: 2017-08-26 # @Original: import pdb def gen_buy_change_list(): buy_c ...
- 关于如何提高Web服务端并发效率的异步编程技术
最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知 ...
- Atitit.异步编程技术原理与实践attilax总结
Atitit.异步编程技术原理与实践attilax总结 1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await1 2. 事件(中断)机制1 3. Await 模 ...
- Java Web编程技术学习要点及方向
学习编程技术要点及方向亮点: 传统学习编程技术落后,应跟著潮流,要对业务聚焦处理.要Jar, 不要War:以小为主,以简为宝,集堆而成.去繁取简 Spring Boot,明日之春(future of ...
- javascript学习 真正理解DOM脚本编程技术背后的思路和原则
本文学习来源于<javascriptDOM编程艺术>仅作笔记 学会怎样才能利用DOM脚本编程技术以一种既方便自己更体贴用户的方式去充实和完善你们的网页. 循序渐进:从最核心的内容开始,逐步 ...
- 转载--提高C++性能的编程技术
读书笔记:提高C++性能的编程技术 第1章 跟踪范例 1.1 关注点 本章引入的实际问题为:定义一个简单的Trace类,将当前函数名输出到日志文件中.Trace对象会带来一定的开销,因此在默认情况 ...
随机推荐
- Java Spring Boot 一些调试技巧
配置文件的管理 有的时候我们希望开发环境和测试环境的配置文件放在一起可以快速切换 spring boot 为我们提供了很方便的的选项 在 application.properties 中只需要添加属性 ...
- js延迟加载的性能优化
js的延迟加载有助于提高页面的加载速度,特别是竞价优化站是有一定的好处,今天来说说我是如何优化竞价站打开速度! 案例:http://yzmb.pengchenggroup.cn/ 动态创建DOM方式 ...
- OSX Homebrew 安装 Spring Boot CLI
OSX Homebrew 安装 Spring Boot CLI 如果您使用的是Mac并使用Homebrew,则可以使用以下命令安装Spring Boot CLI: $ brew tap pivotal ...
- git 学习笔记 —— 保留/丢弃当前分支修改并切换至其他分支
笔者在本地终端进行 git 工作目录的相关处理时,遇到由于某种情况需要使用 git checkout 命令切换到其他分支的情景.此时,若已经对当前分支做了一定的修改,则直接切换分支时 git 会提示错 ...
- 使用VSCode开发Flutter
前言 为什么使用VSCode? flutter官方推荐的编辑器有IDEA/Android Studio和VSCode, 之前开发Flutter用的IDEA, 不过IDEA始终比较重,于是换用VSCod ...
- day007-python函数之课后作业讲解
作业一: 需求:写函数,计算传入字符串中的[数字].[字母].[空格]以及[其他]的个数 #!/usr/bin/env python # -*- coding:utf-8 -*- #先定义一个函数 d ...
- python 日期、时间、字符串相互转换(转载)
原文链接:https://www.cnblogs.com/huhu-xiaomaomi/p/10338472.html 在python中,日期类型date和日期时间类型dateTime是不能比较的. ...
- [RN] React Native 实现 类似京东 的 沉浸式状态栏和搜索栏
React Native 实现 类似京东 的 沉浸式状态栏和搜索栏 其原理其实就是在要 隐藏 部分的那个View 前面加入 StatusBar 代码! 代码如下: <StatusBar anim ...
- shell for循环输出目录下的文件名
test.sh文件: #!/bin/bash for file in `ls`;do echo $file done 输出 bogon:test macname$ chmod +x test.sh b ...
- ES6 - 开篇
一些关于es6简单的介绍与了解.初始认知有限,循序完善. ES6: 又叫ES2015,是2015年推出的JavaScript新版本. 相应的,后边推出的ES7.8.9.10等都依次是上一版本发出后一年 ...