python
bboysky45
一个没有感情的量化研究员
展开
-
python中copy()和deepcopy()
参考文章:https://blog.csdn.net/u010712012/article/details/797541321. python的赋值与存储方式#第一种情况>> a = [1, 2, 3]>>> b = a>>> a = [4, 5, 6] //赋新的值给 a>>> a[4, 5, 6]>...转载 2020-03-30 19:11:02 · 237 阅读 · 0 评论 -
多因子模型 —— 因子正交化处理
Why do this?传统的多因子模型处理共线性的方法,如IC加权、IR加权,ICIR加权等,都以IC值为基础确定各因子在模型中的权重。而IC是当期因子暴露与下一期收益间的相关系数。传统方法的缺陷是:如果因子间存在较强的相关性,通过上述加权方式,最终会导致因子对于某种风格的因子重复暴露。使得整个组合的表现严重偏向于该因子,削弱其他因子的效果。具体来说,当因子表现好时,组合会获得更高的...原创 2020-03-29 16:32:42 · 12259 阅读 · 3 评论 -
多因子选股模型 —— 因子间相关性检验和等权因子法
1. import package and download datafrom atrader import *import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport mathimport statsmodels.api as smimport datetime as dtimpor...原创 2020-03-28 17:16:02 · 8850 阅读 · 1 评论 -
多因子选股模型 —— 因子历史收益率(因子与股票收益率回归后的收益率)加权法
1. import package and download datafrom atrader import *import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport mathimport statsmodels.api as smimport datetime as dtimpor...原创 2020-03-28 16:50:01 · 4903 阅读 · 0 评论 -
线性回归模型 —— 普通最小二乘法(OLS)推导与python实现
一般回归模型中回归的核心任务就是要通过样本信息来估计总体回归函数一元线性回归模型:一元线性回归模型假设x是一维的,即只考虑一个因素对y的影响,模型为 y=+x+μ, E (μ|x)= 0其中, 为回归系数。可以表示为当x = 0,时y的期望值;可以理解为x每增加一个单位,y...原创 2020-03-26 13:20:37 · 12084 阅读 · 1 评论 -
pandas to_excel,把数据存到不同的sheet
writer = pd.ExcelWriter('SPX_HSI_HS300.xls')df_SPX.to_excel(writer,"SPX")df_HSI.to_excel(writer,"HSI")df_HS300.to_excel(writer,"HS300")writer.save()原创 2020-01-04 16:27:16 · 1100 阅读 · 0 评论 -
Matplotlib练习
fig, ax = plt.subplots(figsize=(12,6))x = np.linspace(0, 5, 10)# # line 1 -- line 4 ,线形图,蓝色线,线宽分别为 0.25 ,0.50 , 1.00 ,2.00ax.plot(x, x+1, color='b', linewidth=0.25)ax.plot(x, x+2, color='b', li...原创 2019-12-31 10:23:08 · 166 阅读 · 0 评论 -
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation bytebp_
最近找数据,下载了个csv文件,用pandas打开出现乐编码错误,之前遇到过没注意,这次记录一下bp_data = pd.read_csv("399300.csv")错误原因:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte解决方法,看...原创 2019-12-30 18:11:20 · 1438 阅读 · 1 评论 -
Matplotlib绘图时x轴标签重叠的解决办法import pandas as pd import matplotlib.pyplot as plt # 准备数据 data = {'sport_ty
在使用Matplotlib画图时,我遇到了一个尴尬的情况,那就是当x轴的标签名字很长的时候,在绘制图形时,发生了x轴标签互相重叠的情况。本文主要通过一个简单的示例,探索了以上描述问题的4种解决方法。示例import pandas as pdimport matplotlib.pyplot as plt# 准备数据data = {'sport_type':['running',...转载 2019-12-30 14:55:49 · 7000 阅读 · 1 评论 -
Python 实现小数和百分数的相互转换
最近在画图时候发现我居然不会把分数转为百分比!what?主要是之前也没有过这个需求,anyway,百度一下就有了,这里当记录!1.百分比转为小数,这里默认百分比是字符串# -*- coding: utf-8 -*-s = '20%' # 默认要转换的百分比是字符串aa = float(s.strip('%')) # 去掉s 字符串中的 %bb = aa/100.0print(b...原创 2019-12-27 13:55:32 · 8947 阅读 · 1 评论 -
过滤掉python中的FutureWarning
Python是一门面向对象的语言,换句话说,也就是他有很多的工具库可以调用,这就像我们的手机里的app一样,总是会更新的,那一更新可能有一些功能是改动的,但如果我们不更新app,我们依旧能够使用旧的功能,是没有影响的。所以当python的一些工具库更新了新版本而我们还用着老版本的时候,他就会给我们来个FutureWarning,提示在新的版本,某个功能已经取消了等等,如下图:他说she...原创 2019-12-26 18:47:28 · 24318 阅读 · 2 评论 -
Jupyter notebook中的提示框和网页嵌入
1.Jupyter notebook有几种提示框,主要是应对不同分析情况,如下图其实什么类型的提示框和内容都不重要,主要就是这个颜色啦,这里记录一下#蓝色<div class="alert alert-block alert-info"><b>提示:</b> 使用蓝色提示框(属性为alert-info)来显示提示和注释。<div&...原创 2019-12-26 18:29:15 · 3894 阅读 · 0 评论 -
Matplotlib画蜡烛图
mpl_finance.candlestick_ohlc()以前使用Matplotlib画蜡烛图的时候是使用matplotlib.finance这个工具库里面candlestick_ohlc函数,最近发现Matplotlib新版本把这块内容删掉了,得使用mpl_finance,报错如下那就使用mpl_finance吧!首先是安装,两种方法,哪种能安装选那种方法1:1. 从g...原创 2019-12-26 18:08:26 · 2217 阅读 · 0 评论 -
Matplotlib 正常显示中文和负号
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号原创 2019-12-26 17:09:43 · 640 阅读 · 0 评论 -
Jupyter Notebook进阶 - 实用的扩展工具,让你的效率翻一番
Jupyter Notebook 现已成为数据分析,机器学习的必备工具。因为它可以让数据分析师集中精力向用户解释整个分析过程。通过安装一些扩展工具,可以让你在Jupyter Notebook上的工作效率进一步的提高。这个扩展工具叫做 Jupyter NbExtensions Configurator1.先看一下怎么安装吧首先得确保我们已经有python,有jupyter noteboo...原创 2019-12-26 14:59:55 · 801 阅读 · 0 评论 -
localhost、127.0.0.1、本机IP之间的区别
1、localhost等于127.0.0.1,不过localhost是域名,127.0.0.1是IP地址。2、localhost和127.0.0.1不需要联网,都是本机访问。3、本机IP需要联网,本机IP是本机或外部访问, 本机 IP 就是本机对外放开访问的IP地址,这个网址就是与物理网卡绑定的IP地址。当操作系统初始化本机的TCP/IP协议栈时,设置协议栈本身的IP地址为127.0....原创 2019-12-25 17:22:35 · 574 阅读 · 0 评论 -
视频文稿批量提取(python实现)
都说学如逆水行舟,不进则退,最近工作遇到很多新的知识,需要看很多学习视频,虽说现在网络上很多学习视频能让我们快速去学习新技能,但对于需要工作的人来说,一个视频一个多小时,实在是没时间也看不下去呀,所以想着能不能把文稿提取出来然后结合着ppt看,这样估计一小时的课程,15分钟就能学习完了。然后,嗯,下面是使用python实现了这个功能。设计思路如下:1.提取文字提取文稿是对音频的操作,也...原创 2019-12-25 17:11:55 · 2617 阅读 · 6 评论 -
Python标准库模块之heapq
功能:该模块提供了堆排序算法的实现,比如排序算法,就可以用这个实现啦1. 创建堆heapq有两种方式创建堆一种是使用一个空列表,然后使用heapq.heappush()函数把值加入堆中,另外一种就是使用heap.heapify(list)转换列表成为堆结构import heapq# 第一种"""函数定义:heapq.heappush(heap, item) - ...原创 2019-12-25 17:10:18 · 247 阅读 · 0 评论 -
Python 线程,with的作用(自动获取和释放锁Lock)
python中with的作用其实就是省去了开启关闭的功能,比如使用python打开.txt文件,需要先open,最后读写完了,需要close。在线程中也是这样的,我们给资源加上锁Lock,使用前需要1. 定义锁:lock = threading.Lock()2. 启动lock.acquire()3. 用完之后的释放lock.release()而是用with lock则省去了上...原创 2019-12-25 16:55:37 · 2413 阅读 · 0 评论 -
python多线程中 锁的概念 threading.Lock
1.概念:资源加锁是怎么回事,其实并不是给资源加锁, 而是用锁去锁定资源,你可以定义多个锁, 像下面的代码, 当你需要独占某一资源时,任何一个锁都可以锁这个资源,就好比你用不同的锁都可以把相同的一个门锁住是一个道理.import threading import time counter = 0 counter_lock = threading.Lock() #只是定义...原创 2019-12-25 16:50:34 · 2293 阅读 · 0 评论 -
时间序列数据分析--Time Series--时序模型--ARIMA
ARIMA模型参数选择检查序列是否平稳 若不平稳,使用差分平稳化序列,确定差分阶数d ARMA定阶 通过PACF确定AR的阶数p 通过ACF确定MA的阶数q 根据参数p,d,q建立模型ARIMA(p,d,q)# ARIMA模型# 平稳性import pandas as pdimport numpy as npimport matplotlib.pyp...转载 2019-04-10 18:27:32 · 2792 阅读 · 0 评论 -
可视化--世界高峰数据统计和可视化
本文是对一个登山的数据进行简单的可视化操作,数据在最下方网盘如图为数据形式1.获得数据import pandas as pdimport matplotlib.pyplot as pltfrom matplotlib import stylestyle.use('ggplot') # 设置图片显示的主题样式# 解决matplotlib显示中文问题plt.rc...转载 2019-04-01 15:00:43 · 611 阅读 · 0 评论 -
可视化--Seaborn
Seabornpython 中的制图工具库,可以制作出吸引人的,信息量大的统计图在Matplotlib上构建,支持numpy和pandas的数据结构可视化,甚至是scipy和statsmodels的统计模型可视化主要用于比较数据集中各变量的分布情况数据集分布可视化------>单变量分布sns.displot()sns.displot() 参数(rug:密度小柱状体;k...转载 2019-04-01 12:04:21 · 605 阅读 · 0 评论 -
tkinter -Listbox
Listbox列表部件-创建主窗口-创建一个label用于显示-创建一个方法用于按钮的点击事件-创建一个按钮-创建一个Listbox和变量var2,并将var2的值赋给Listbox需求import tkinter as tkwindow = tk.Tk()window.title('my window')window.geometry('200x200')...转载 2019-01-08 22:19:53 · 270 阅读 · 0 评论 -
数据分析--pandas(数据结构)
Pandas功能:1.分析结构化数据的工具集2.提供高性能矩阵的运算3.提供数据清洗功能1.数据结构 Series and Dataframe(1)Series获取数据、索引 ser_obj.values / ser_obj.indeximport pandas as pdser_obj = pd.Series(range(10))# 获取数据...原创 2019-04-03 16:31:42 · 152 阅读 · 0 评论 -
kmeans手工实现
算法原理kmeans的计算方法如下:1 随机选取k个中心点2 遍历所有数据,将每个数据划分到最近的中心点中3 计算每个聚类的平均值,并作为新的中心点4 重复N次,直到这k个中心点不再变化(收敛了),或执行了足够多的迭代代码实现:1.首先定义一个聚类对象Cluster,里面包括了:(1)样本点对象samples,样本点维度对象n_dim,聚类中心对象centroid...原创 2019-04-09 21:59:35 · 928 阅读 · 1 评论 -
时间序列数据分析--Time Series--时序模型--ARIMA-股票分析
使用ARIMA模型拟合股票数据ARIMA可拆分为AR , I , MA。AR模型:MA模型:ARMA模型:ARIMA模型:ARIMA:差分自回归移动平均模型AR是自回归,P是自回归项; d 为时间序列称为平稳时 所做的差分次数 MA 是移动平均, q 为移动平均项 原理: 将非平稳时间序列转换成平稳时间序列, 然后将因变量仅对它的滞后值(p阶)以及...原创 2019-04-17 16:24:25 · 4820 阅读 · 6 评论 -
图像处理工具- scikit-image
scikit-image基本操作图像数据通过ndarray表示 图像的像素值通常有以下两种处理范围 1.0-255,0:黑,255:白 2.0-1 ,0:黑,1:白 skimage支持以上两种像素范围,至于如何选择是根据数组的dtype决定1.skimage的图像数据import skimageimport numpy as npimport matplotlib....转载 2019-04-17 20:31:49 · 953 阅读 · 0 评论 -
图像处理工具- scikit-image
scikit-image图像数据处理Color 模块和exposure模块1.基本操作import numpy as npimport matplotlib.pyplot as pltfrom skimage import datacolor_image = data.chelsea()print(color_image.shape)plt.imshow(color_im...原创 2019-04-17 21:04:12 · 842 阅读 · 0 评论 -
时间序列数据分析--Time Series--时间序列数据统计—滑动窗口
滑动窗口在时间窗口上计算各种统计函数 窗口函数 滚动统计 obj.rolling().func 窗口大小 window 窗口是否居中统计 center ##窗口函数--cumsum()import pandas as pdimport numpy as npser_obj = pd.Series(np.random.randn(1000), ...转载 2019-04-10 15:11:10 · 4637 阅读 · 0 评论 -
时间序列数据分析--Time Series--时间数据重采样
重采样(resample)将时间序列从一个频率转换到另一个频率的过程,需要使用聚合显示 pandas中的resample方法实现重采样 产生Resample对象 高频 -> 低频率 resample(freq).sum(),resample(freq).mean()............ #resampleimport pandas as pdimpor...转载 2019-04-10 14:56:33 · 3347 阅读 · 0 评论 -
tkinter Frame
Frame框架需求:import tkinter as tkwindow = tk.Tk()window.title('my window')window.geometry('200x200')l = tk.Label(window,text = 'on the window').pack()frm = tk.Frame(window)frm.pack()frm_...转载 2019-01-09 14:00:09 · 296 阅读 · 0 评论 -
tkinter Menubar
Menubar 菜单-Menubar 部件-触发功能需求:import tkinter as tkwindow = tk.Tk()window.title('my window')window.geometry('200x200')l = tk.Label(window,text = '',bg='yellow')l.pack()counter=0def do...转载 2019-01-09 13:34:15 · 199 阅读 · 0 评论 -
tkinter Canvas
Canvas 画布-Canvas 部件-触发功能需求:锚定的点import tkinter as tkwindow = tk.Tk()window.title('my window')window.geometry('200x200')canvas = tk.Canvas(window,bg='blue',height=100,width=200)ima...转载 2019-01-09 13:12:56 · 447 阅读 · 2 评论 -
tkinter Checkbutton勾选项
Checkbutton勾选项-Checkbutton部件-触发功能需求import tkinter as tkwindow = tk.Tk()window.title('my window')window.geometry('200x200')var = tk.StringVar()l = tk.Label(window,bg='yellow',width=20...转载 2019-01-09 12:46:22 · 1816 阅读 · 0 评论 -
tkinter Scale
Scale 尺度-scale部件-触发功能需求:import tkinter as tkwindow = tk.Tk()window.title('my window')window.geometry('200x200')var = tk.StringVar()l = tk.Label(window,bg='yellow',width=20,text = 'em...转载 2019-01-09 12:09:43 · 323 阅读 · 0 评论 -
tkinter Radiobutton
Radiobutton 选择按钮-radiobutton 部件-触发功能需求:import tkinter as tkwindow = tk.Tk()window.title('my window')window.geometry('200x200')var = tk.StringVar()l = tk.Label(window,bg='yellow',widt...转载 2019-01-09 11:57:18 · 671 阅读 · 0 评论 -
tkinter()-Entry % Text
Entry % Text 输入,文本框需求:import tkinter as tkwindow = tk.Tk() #### 窗口objectwindow.title('my window')window.geometry('200x200')e = tk.Entry(window,show=None)###show = '*'e.pack()var = tk.St...转载 2019-01-08 22:01:07 · 231 阅读 · 0 评论 -
tkinter()--Label and Button
Label & Button 标签和按钮-窗口主题框架-窗口内容需求:import tkinter as tkwindow = tk.Tk() #### 窗口objectwindow.title('my window')window.geometry('200x100')var = tk.StringVar()l = tk.Label(window,t...转载 2019-01-08 21:30:52 · 119 阅读 · 0 评论 -
python - argparse解析命令行参数和选项的模块
argparse是python用于解析命令行参数和选项的标准模块使用步骤:1:import argparse2:parser = argparse.ArgumentParser()3:parser.add_argument()4:parser.parse_args() 方法add_argument(name or flags...[, action][, nargs][...转载 2019-01-13 16:36:22 · 231 阅读 · 0 评论