04 2020 档案
摘要:为了限制类属性的被外界访问范围,通常在类中设置了set方法和get方法用于对属性值的赋值与取值,这样在对属性赋值取值的时候就会略显复杂。 有没有既能检查参数,又可以用类似属性这样简单的方式来访问类的变量呢?对于追求完美的Python程序员来说,这是必须要做到的! 还记得装饰器(decorator)可
阅读全文
摘要:本文通过开源项目 "schedule" 来学习定时任务如何工作 schedule简介 先来看下做做提供的一个例子 注解 每隔10分钟执行一次任务 每隔一个小时执行一次任务 每天10:30执行一次任务 每周一执行一次任务 每周三13:15执行一次任务 每小时的第17分钟时执行一次任务 schedule
阅读全文
摘要:其实,这部分主要是实现定时抓取数据的程序,数据的抓取以及存储程序已写( "从Tushare获取历史行情数据" ) 抓取交易日(周一到周五)数据,定时为每天的15:30抓取,其中主要使用到了schedule模块用于定时执行任务 代码如下:
阅读全文
摘要:抓取财报数据,主要关注 每只股票的EPS(每股收益即每股盈利)、公告日期还有报告日期 确定数据源 从东方财富的 "数据中心" 抓取 年报季报 中的股票数据 右击、点击 检查 (或直接按F12)进入开发者模式,点击 NetWork 导航,重新点击下页面中的 报告期 ,便可得到数据 上述便可得到所需财报
阅读全文
摘要:###题目描述 小招在玩一款游戏:在一个N层高的金字塔上,以金字塔顶为第一层,第i层有i个落点,每个落点有若干枚金币,在落点可以跳向左斜向下或向右斜向下的落点。若知道金字塔的层数N及每层的金币数量分布,请计算小招在本次游戏中可以获得的最多金币数量。 ###输入描述: 输入共有N + 1行(N ≤ 1
阅读全文
摘要:###题目描述 在一场集体婚礼上,有n对新人需要坐在连续排列的 2n个座位上合影,同一对新人彼此挨着。由于进场时各对新人并未按序入座,请计算最少交换座位的次数,以便使每对新人均可并肩坐在一起。一次交换可选择任意两人,让他们互换座位。 全部新人的序号可用 0 到 2n-1 的整数表示,第一对是 (0,
阅读全文
摘要:为什么要写这篇呢,故事还得从MongoDB如下所示的罢工说起 怎么就拒绝访问了呢???? 在执行mongod命令可发现如下问题: 于是,在蜘蛛网上到处扒拉,以解它这不解之症,也解我燃眉之急 终于。。。 找到了它他她 需要见两个文件夹,一个存数据的,一个是存日志文件的 在D:\MongoDB\Serv
阅读全文
摘要:urllib3是一个功能强大、条理清晰,用于HTTP客户端的python库,许多python的原生系统已经开始使用urllib3.urllib3提供了很多python标准库里没有的特性: 1、线程安全 2、连接池 3、客户端SSL/TLS验证 4、文件分部编码上传 5、协助处理重复请求和HTTP重定
阅读全文
摘要:对复权因子的介绍可 "参考" 通过计算复权因子求得当日前一天收盘价,并存储在MongoDB数据库中 代码实现
阅读全文
摘要:问题 从TuShare获取的数据,停牌日是没有数据的,这将会在 回测 时,不能直接参与账户的净值计算, 导致 账户的净值以及收益计算不准确。 停盘 股票由于某种消息或进行某种活动引起股价的连续上涨或下跌,由证券交易所暂停其在股票市场上进行交易。待情况澄清或企业恢复正常后,再复牌在交易所挂牌交易。 解
阅读全文
摘要:对股价和成交量进行权息修复,按照股票的实际涨跌绘制股价走势图,复权因子并把成交量调整为相同的股本口径。有了“复权因子”,计算向前复权价格、向后复权价格、收益率等变得非常轻松了,将计算日收盘价乘以“复权因子”即得到复权价格。 利用复权因子计算复权价格 向前复权因子: 以最近一次复权为例,除权除息日复权
阅读全文
摘要:python中对文件、文件夹(文件操作函数)的操作设计到os模块以及shutil模块 os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作,比如:绝对路径,父路径等等, shutil模块则提供了os模块没有但文件操作应该具有的操作,比如移动、复制、打包、压缩、解压
阅读全文
摘要:list、tuple、set、dict区别 参考: "python的列表,字典,元组,集合的区别和各自使用方法" 遍历set 由于set也是一个集合,所以,遍历set和遍历list类似,都可以通过for循环实现 直接用for循环遍历set中的元素
阅读全文
摘要:参数详解: param values: object print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by defau
阅读全文
摘要:作用 获取集合中指定字段的不重复值,并以数组的形式返回 语法 field:指定返回的字段(string) query:条件查询(document) option:其他的选项(document),查看 "options" 举例:
阅读全文
摘要:再探讨下K线图里面的前复权、后复权和不复权不甚了解,于是,想着就来学习下。可配合看 "投资与股票交易规则" 中4.3节除权除息部分。 说复权,要先明白 转送 和 除权 。 转送就是送股或者转增股票,比如10送10,10送15。上市公司在送股后,股票的数量变多,但是股票价值不变,所以股价变低, 在K线
阅读全文
摘要:从Tushare获取历史行情数据,分为两种,一种是后复权(daily_hfq)数据,一种是不复权(daily)数据,获取到的数据存储在MongoDB数据库中,每个集合(collection)中,数据字段包含如下: 抓取指数历史行情 流程图如下 首先准备好数据库的连接,可查看 "python对Mong
阅读全文
摘要:索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。 索引是特殊的数据结构,索引存储在一个易于遍历读取的
阅读全文
摘要:datetime是python处理日期和时间的标准库 获取当前日期和时间 注意到$\color{purple}{datetime}$是模块,$\color{purple}{datetime}$模块还包括了一个$\color{purple}{datetime}$类,通过from datetime im
阅读全文
摘要:描述 python字典(Dictionary) update()函数吧dict2的键/值对更新到dict里 语法 参数 dict2 添加到指定字典dict里的字典 返回值 无返回值 例子: 输出结果:
阅读全文
摘要:需要批量操作时候,节省网络连接交互次数,可以使用 bulk_write。 方法一:批量插入insert_many 方法二:批量更新bulk_write(UpdateOne) bulk_write定义 提供可控执行顺序的批量写操作。 语法格式如下: 方法返回值: 操作基于 write concern
阅读全文
摘要:梯度下降法(Gradient Descent)是求解无约束最优化问题最常用的方法之一,它是一种迭代方法,每一步的主要操作就是求解目标函数的梯度向量,将当前位置的负梯度方向作为搜索方向。 直观的表示可用下图来表示: 这里每一个圈代表一个函数梯度,最中心表示函数极值点,每次迭代根据当前位置求得的梯度(用
阅读全文
摘要:tushare中get_k_date接口主要目的是获取k线数据,该接口融合了get_hist_data和get_h_data两个接口的功能,即能方便获取日周月的低频数据,也可以获取5、15、30和60分钟相对高频的数据,同时,上市以来的前后复权数据也能在一行代码中轻松获得。 接口原型及参数 这里也附
阅读全文
摘要:MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活(总体来看,python对MongoDB的操作与直接在MongoDB操作大致相同) 1. 连接MongoDB 连接Mongo
阅读全文
摘要:MongoDB采用 基于角色的访问控制(RBAC) 来确定用户的访问。 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。 用户应该只有最小权限集才能确保最小权限的系统。 MongoDB系统的每个应用程序和用户都应该映射到不同的用户。 这种访问隔离便于访问撤销和持
阅读全文
摘要:创建数据库 语法 MongoDB创建数据库的语法格式如下: 如果数据库不存在,则创建数据库,负责切换到指定数据库 例子: 发现我们创建的数据库data并不在数据库列表中,要显示它,就必须要往data数据库中插入数据。 这里要说明下,MongoDB中默认数据库为test,如果没有创建数据库,直接将数据
阅读全文
摘要:在MongoDB中基本的概念是文档、集合、数据库,非关系型数据库(NoSQL),而我们之前熟知的SQLServer、MySQL等都属于关联型数据库 下图将两者进行了一个简单的比较: 通过下图的实例,可以更直观的了解MongoDB中的一些概念: 数据库 一个MongoDB中可以建立多个数据库 Mong
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n 1并且m 1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Inse
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路: 根据二叉搜索树的特性:左小右大,采用中序遍历二叉树,得到的序列即
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路: 广度优先搜索,借助队列
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路: 广度优先搜索策略(借助队列),并偶数行进行反转
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路: 判断二叉树是否对称。首先判断该二叉树是否为空,若不为空,根节点及其左右子树,判断左
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: 中序遍历:左中右,分析二叉树的下一个结点,一种有以下几种情
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1 2 3 3 4 4 5 处理后为 1 2 5 思路: 根据题目要求:删除所有重复的结点。设
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路: 设置快慢指针都从链表头出发,快指针每次走 两步 ,慢指针每次走 一步 ,假如有环,一定可以相遇于环中某点(结论1)。接
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 请实现一个函数用来匹配包括'.'和' '的正则表达式。模式中的字符'.'表示任意一个字符,而' '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2"," 123","3.1416"和" 1E 16"都表示数值。 但是"12e","1a3.14","1.2
阅读全文
摘要:要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行,迭代器是一个变量,相当于容器和操作容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类型。 迭代器按照定义方式分为以下四种: 正向迭代器,定义方式: 1. 容
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 给定一个数组A[0,1,...,n 1],请构建一个数组B[0,1,...,n 1],其中B中的元素B[i]=A[0] A[1] ... A[i 1] A[i+1] ... A[n 1]。不能使用除法。
阅读全文
摘要:容器(container)用于存放数据的类模板。可变长数组、链表、平衡二叉树等数据结构在STL中都被实现为容器。 在使用容器时,即将容器类模型实例化为容器类,会指明容器中存放的元素是什么类型。 容器可以分为两大类: 顺序容器 和 关联容器 顺序容器 顺序容器有 可变长动态数组vector、双端队列d
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 在一个长度为n的数组里的所有数字都在0到n 1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则
阅读全文
摘要:算法复杂度 1、冒泡排序 冒泡排序(Bubble sort),他重复的走访要排序的数列,一次比较两个元素,如果顺序错误,就将它们交换位置。无论是最坏时间复杂度还是平均时间复杂度都为O(n^2),但算法稳定 算法步骤: 1、比较相邻的两个元素,如果第一个比第二个大,就交换,对每一对相邻元素做同样的工作
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、 、 、/四则运算符号。 思路: “不用加减乘除做加法”,那就是打算使用 位操作符 来进行计算。 先来讨论下我们在做加法运算的时候的过程: 比如5+
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路: 利用 短路求值 的方法 C语言的逻辑操作符 &&
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩
阅读全文
摘要:使用最小二乘法推导出来的关于系数的矩阵公式($\theta=(X^TX)^{ 1}X^TY$)也就是我们常说的正规方程。最小二乘法在回归模型中主要是优化拟合函数(此外还可以使用梯度下降法、随机梯度下降法等优化算法来计算函数参数),使得拟合函数能够更好的表达数据。本文将依据正规方程做一简单的线性回归
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 思路: 首先来说
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组
阅读全文
摘要:今天来看下C++中的auto和decltype两个关键字 + auto关键字定义变量,编译器会自动判断变量的类型 举个栗子: 有时,变量的类型名特别长,使用 auto 就会很方便。例如: 编译器会自动识别出i的类型为map ::iterator + decltype关键字可以用于求表达式的类型。 举
阅读全文
摘要:最小二乘法主要用于函数拟合或函数极值,其思想主要是通过将理论值与预测值的距离的平方和达到最小。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影。 最小二乘法的原理与要解决的问题 最小二乘法的形式如下式所示: $$目标函数 = \sum(理论值 预测值)^2$$ 理论值是样本数据,预测值是拟
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路: + 方法一:与前面[第一个只出现一次的字符][1]题目类似,这里采用hash map存储 class
阅读全文
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 知识介绍: + 平衡二叉树,是一种二叉排序树,它的每个结点的左子树和右子树的高度差不超过1。是一种高度平衡的二叉排序树。 思路: + 采用深度优先搜索的方
阅读全文