自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 面向对象7:类属性和类方法

01 实例1、使用面向对象开发时,第1步是设计类2、使用类名()创建对象,创建对象的动作有两步1)在内存中2)

2021-06-20 10:41:39 445

原创 面向对象6:多态

多态:不同的子类对象调用相同的父类方法,产生不同的执行结果多态可以增加代码的灵活度以继承和重写父类方法为前提是调用方法的技巧,不会影响到类的内部设计

2021-06-19 14:21:22 100

原创 面向对象5:多继承

概念子类可以拥有多个父类,并且具有所有父类的属性和方法语法class 子类名(父类名1, 父类名2): pass

2021-06-19 14:02:49 114

原创 面向对象4:继承

目标:单继承、多继承面向对象三大特性:1、封装:根据职责将属性和方法封装到一个抽象的类中2、继承:实现代码的重用,相同的代码不需要重复的编写3、多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度01 单继承1.1 继承的概念、语法和特点继承的概念:子类拥有父类的所有方法和属性...

2021-06-16 16:46:40 69

原创 面向对象3:私有属性和私有方法

01 应用场景及定义方式应用场景在实际开发中,对象的某些属性或方法可能只希望在对象的内部被使用,而是不希望在外部被访问到私有属性就是对象不希望公开的属性私有方法就是对象不希望公开的方法定义方式在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法class Woman: def __init__(self, name): self.name = name self.__age = 18 def __se

2021-06-15 16:52:03 116 1

原创 面向对象2:面向对象语法基础

01 dir内置函数使用内置函数dir传入标识符/数据,可以查看对象内的所有属性和方法。02 定义简单的类2.1 定义只包含方法的类class 类名: def 方法1(self, 参数列表): pass def 方法2(self, 参数列表): pass第一个参数必须是self类名的命名规则要符合大驼峰命名法2.2 创建对象第一步一定要做需求分析class Cat: def eat(self):

2021-06-13 13:52:51 49

原创 面向对象1:类和对象

01 类和对象的定义类和对象是面向对象的两个核心概念。1.1 类类是一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用特征被称为属性行为被称为方法类是一个模板,负责创建对象1.2 对象对象是由类创建出来的一个具体存在,可以直接使用由哪一个类创建出来的对象,就拥有在哪一个类中定义的属性和方法在程序开发中,先有类,再有对象02 类和对象的关系同一类不同对象之间的属性可能会各有不同类中定义了什么属性和方法,创建出来的对象就拥有什么属性和方法03

2021-06-13 09:49:12 53

原创 机器学习2:特征预处理

通过特定的统计方法,将数据转换为算法要求的数据方法总结数值型数据:归一化、标准化、缺失值类别型数据:One-hot编码时间类型:时间的切分归一化将原始数据进行变换映射到[0,1]之间mi和mx是指定数据范围sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1),copy=True)缺点:容易受异常值影响,鲁棒性较差标准化通过对原始数据进行变换把数据变换到均值0,方差1范围内sklearn.

2021-06-03 16:01:18 40

原创 机器学习1:机器学习开发基本流程

第一步:明确问题做什么第二步:数据的基本处理(pandas处理数据,比如缺失值、合并值)第三步:处理特征第四步:找到合适的算法进行预测第五步:模型评估后面按照这个流程一一梳理...

2021-06-03 15:30:14 185

原创 2021-05-24遇到的问题

DataFrame.pct_change()DataFrame.pct_change(periods=1, fill_method=’pad’, limit=None, freq=None, **kwargs)函数作用:计算DataFrame中某列的环比增长率参数:period:控制计算的步长,默认为1fill_method:如果包含nan值,如何处理limit:停止前所需要的填充的NA数freq:时间序列API中的增量DataFrame.ewm()函数作用:计算指数加

2021-05-24 16:17:39 177

原创 20210519其他遇到的问题

pd.set_option()常用的几个设置pd.set_option('expand_frame_repr', False) # 当列太多时不换行pd.set_option('display.max_rows', 5000) # 最多显示数据的行数pd.set_option('display.max_columns', 5000) # 最多显示数据的行数os.path.abspath()返回的是os.path.dirname(__file__)返回的是当前运行脚本的绝对

2021-05-24 09:02:39 116

原创 时间序列2:ARMA模型

ARMA模型的建模过程分析对象:平稳非白噪声序列建模步骤:1、序列识别a.判断我们需要建模分析的数据是否为平稳序列,若非平稳序列需对其进行变换处理,使其成为平稳序列b.接着判断平稳的序列是否为白噪声序列,若为白噪声序列,建模结束;若为非白噪声序列,则进行下一步2、模型识别与建模决定p和q的值,选出最优模型结构通过ACF和PACF大致决定,或者尝试建立若干个备选模型,然后使用AIC或者BIC指标进行选择。3、模型诊断对模型残差进行检验,确保其为服从正态分布的白噪声序列。

2021-05-19 15:28:57 1399

原创 时间序列1:基本概念和检验方法

金融数据分析中常见的三中类型Cross Section Data横截面数据描述的是不同个体在同一时间的属性或特征变量,比如不同公司在同一时间发布的财务报表中,可以得到同一时间的Net IncomeTime Series Data时间序列数据记录的是同一个体的某个特征随着时间的推移不断发展的过程。Panel Data面板数据刻画的是不同个体的某个特征随着时间的推移各自变化的经过时间序列的基本性质自相关性相关性一般指两个变量之间是否存在某种关联,自相关性指一个时间序列的两个不

2021-05-19 12:05:05 2360

原创 统计笔记5:Linear Regression

OLS函数sm.OLS(endog, exog, missing, hasconst)参数含义:endog:因变量exog:自变量OLS常用模板总结导入库import statsmodels.api as smfrom statsmodels.stats.outliers_influence import summary_table因变量&自变量其中自变量左边要加上一个常数x = sm.add_constant(daily_data['temp'])

2021-05-19 09:04:56 1595

原创 统计笔记4:ANOVA

思路:先构建模型,再使用anova.anova_lm进行方差分析单因素方差分析model = ols('Return ~ C(Industry)', data=year_return.dropna()).fit()table1 = anova.anova_lm(model)print(table1)多因素方差分析model = ols('earnings ~ C(married)+C(educatn)', data=PSID.dropna()).fit()tabel2 = anov

2021-05-18 21:10:50 303

原创 统计笔记3:statistical inference

统计推断(statistical inference)包含括两类工作:参数估计和假设检验一、参数估计Parameter Estimation1、Ponit Estimation点估计:用一个具体的值来估计总体的未知参数矩估计法Moment Estimation矩:一个变量X的k次方的均值2、Interval Estimation区间估计:考虑了估计存在的误差,因而不是使用一个具体的值,而是一个置信区间(Confidence Interval),区间估计的可信程度成为置信度或者置信水平(C

2021-05-18 14:06:45 1723

原创 统计笔记2:Random Variable

离散型随机变量生成离散型概率分布np.random.choice(a, size=None, replace=True, p=None)RandomNumber = np.random.choice([1,2,3,4,5], size=100, replace=True, p=[0.1,0.1,0.3,0.3,0.2])连续型随机变量计算概率密度stats.kde.gaussian_kde()二项分布Binomial Distribution与伯努利试验Bernoulli Ex

2021-05-18 10:49:41 299

原创 统计笔记1:Descriptive statistics

数据的位置history['Emerging.Markets'].mean() # 求算数平均数history['Emerging.Markets'].median() # 求中位数history['Emerging.Markets'].mode() # 求众数history['Emerging.Markets'].quantile(0.25) # 求四分位数history['Emerging.Markets'].quantile(0.1) # 求10%分位数数据的离散度h

2021-05-18 09:54:48 264

原创 数学笔记2:概率分布

数学笔记2:概率分布1、离散随机变量概率分布古典概型import numpy as npfrom numpy.random import random_samplefrom matplotlib.pyplot as pltimport seaborn as snssns.set_style('white')from matplotlib import pylabdef weighted_values(values,probabilities,size): bins = n

2021-05-17 19:23:22 83

原创 数学笔记-线性代数

数学笔记-线性代数1矩阵运算A.dot(B) # 矩阵A点乘矩阵BB = np.linalg.inv(A) # 矩阵A求逆线性回归模型求解statsmodels统计分析包statsmodels,OLS(endog, exog),其中endog是因变量Y,exog是自变量X1、生成模型import numpy as npimport matplotlib.pyplot as pltimport statsmodels.api as smnsample = 200

2021-05-17 16:08:47 263

原创 Dataframe中计算最大回撤的处理

第一步:分组将df按照持仓时间和空仓时间进行分组,分组完成之后就可以在# ===将每笔交易的start_time设置为发出信号的candle_begin_time,用于分组 open_mask = (df['signal'].abs() == 1) df.loc[open_mask, 'start_time'] = df.loc[open_mask, 'candle_begin_time'] close_mask = (df['signal'] == 0) df.l

2021-05-13 14:45:50 901

原创 H5文件批量读写操作

H5文件批量读写操作1、遍历文件夹操作for root, dirs, files in os.walk(file_location): # root输出文件夹,dirs输出root下所有的文件夹,files输出root下的所有的文件 print('当前文件夹:', root) print('包含的文件夹:', dirs) print('包含的文件:', files) print()os.walk是系统自带函数,用于遍历文件夹中的所有文件,os是pytho

2021-05-06 14:47:18 1307

原创 matplotlib小结

导入库from matplotlib import pyplot as pltfrom matplotlib import font_manager画图plt.plot(x, y) # 画图绘制x轴的刻度# 绘制x轴的刻度plt.xticks(range(2, 25)) # 绘制x轴的刻度_xtick_lables = [i/2 for i in range(2, 49)]plt.xticks(_xtick_lables[::3]) # 绘制x轴的刻度,传参数,取步长

2021-05-06 11:42:35 238

原创 numpy常用的统计函数

numpy常用的统计函数# 常用的统计函数print(x.sum(axis=0)) # 求和,axis:0是列求和,1是行求和,None是所有数求和print(np.mean(x, axis=0)) # 求平均数print(np.median(x, axis=0)) # 求中值print(x.max(axis=0)) # 求最大值print(x.min(axis=0)) # 求最小值print(np.ptp(x, axis=0)) # 求极值(最大最小值的差)print(x.

2021-05-06 09:58:45 498

原创 numpy数组拼接、行列交换,随机数,最大最小值位置

numpy数组拼接# 数组的拼接x1 = np.arange(0, 12).reshape(2, 6)x2 = np.arange(0, 12).reshape(2, 6) + 12# x = np.vstack((x1, x2)) # 垂直拼接方式x = np.hstack((x1, x2)) # 水平拼接方式numpy数组行列交换# 数组行列交换x[[1, 2], :] = x[[2, 1], :] # 行交换x[:, [1, 2]] = x[:, [2, 1]] #

2021-05-06 09:29:34 458

原创 numpy读取数据、索引和切片、数值修改

CSV:逗号分隔值文件显示:表格状态源文件:换行和逗号分隔行列的格式化文本,每一行的数据表示一条记录np.loadtxtnp.loadtxt(frame, dtype=np.float, delimiter=None, skiprows=0, usecols=None, unpack=False)frame: 文件、字符串或产生器,可以是.gz或bz2压缩文件dtype: 数据类型,可选,CSV的字符串以什么数据类型读入数组中,默认np.floatdelimiter: 分...

2021-05-05 21:31:45 702

原创 numpy数组创建、类型、形状、运算

数组的创建# 创建数组x = np.arange(10) # 生成一个一维数组,各元素为0-9x = np.array(range(10)) # 生成一个一维数组,各元素为0-9x = np.array([1, 2, 3]) # 生成一个数组 ,各元素为1,2,3x = np.arange(4, 10, 2) # 生成一个数组,从4-10,间隔为2x = np.array(range(1, 4), dtype=float) # 生成一个数组,元素类型为floatx = np.ar

2021-05-04 14:54:44 987

原创 Pandas选取合并操作总结

df.rolling1、函数原型及参数说明:DataFrame.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0, closed=None)window:表示时间窗的大小,注意有两种形式(int or offset)。如果使用int,则数值表示计算统计量的观测值的数量即向前几个数据。如果是offset类型,表示时间窗的大小。pandas offset相关可以参考这里

2021-05-04 11:42:09 2862

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除