
python驿站
本栏专注于python基础API的总结,交流,各种应用场景的解决方案及代码实现,旨在技术提升与交流,希望能对读者有帮助,错误和不当之处,望各位同仁不吝斧正.
「已注销」
,,
展开
-
pandas 基本数据操作
pandas 基本数据操作为了更好的理解这些基本操作,我们将读取一个真实的股票数据。关于文件操作,后面在介绍,这里只先用一下API# 读取文件data = pd.read_csv("./data/stock_day.csv")# 删除一些列,让数据更简单些,再去做后面的操作data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","...原创 2019-08-15 17:02:30 · 285 阅读 · 0 评论 -
Pandas数据结构
Pandas数据结构Pandas中一共有三种数据结构,分别为:Series、DataFrame和MultiIndex(老版本中叫Panel )。其中Series是一维数据结构,DataFrame是二维的表格型数据结构,MultiIndex是三维的数据结构。1.SeriesSeries是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与...原创 2019-08-14 21:55:43 · 550 阅读 · 0 评论 -
Pandas介绍
1Pandas介绍2008年WesMcKinney开发出的库专门用于数据挖掘的开源python库以Numpy为基础,借力Numpy模块在计算方面性能高的优势基于matplotlib,能够简便的画图独特的数据结构2为什么使用PandasNumpy已经能够帮助我们处理数据,能够结合matplotlib解决部分数据展示等问题,那么pandas学习的目的在什么地方呢?增强图表可读...原创 2019-08-14 21:12:53 · 247 阅读 · 0 评论 -
RPC系列之--推荐系统实现方案(python)
RPC系列之–推荐系统实现方案(python)1推荐系统接口定义1.1接口原型接口名称: user_recommend调用参数:UserRequest: user_id # 用户id channel_id # 频道id article_num # 推荐的文章数量 time_stamp # 推荐的时间戳返回数据:Artic...原创 2019-07-17 20:58:28 · 584 阅读 · 0 评论 -
二叉树反推
二叉树反推二叉树有三种深度优先遍历方法:先序中序和后序,如果已知中序和先序,或已知中序和后序,可以确定二叉树的结构。例:先序:0 1 3 7 8 4 9 2 5 6中序:7 3 8 1 9 4 0 5 2 61、先序找根,中序定两边先序的特点是第一个元素是根确定0是根节点,中序的特点是根两侧分别是左右子树确定7 3 8 1 9 4 在0左边,5 2 6在0右边所以我们反推分界初始...原创 2019-08-11 20:30:27 · 1438 阅读 · 0 评论 -
二叉树的遍历-深度优先遍历-广度优先遍历(层次遍历)
二叉树的遍历树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。广度优先遍历(层次遍历)从树的root开始,从上到下从从左...原创 2019-08-11 20:14:43 · 585 阅读 · 0 评论 -
二叉树
二叉树二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1:在二叉树的第i层上至多有2^(i-1)个结点性质2:深度为k的二叉树至多有2^k - 1个结点性质3:对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;性质4:...原创 2019-08-11 20:00:40 · 188 阅读 · 0 评论 -
二分法查找
二分查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一...原创 2019-08-11 19:45:57 · 367 阅读 · 0 评论 -
归并排序
归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。def merge_sort(alist): if len(alist) <= 1...原创 2019-08-11 19:40:21 · 158 阅读 · 0 评论 -
快速排序-Quicksort
快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有...原创 2019-08-11 19:36:32 · 231 阅读 · 0 评论 -
希尔排序-Shell Sort
希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序的分析def she...原创 2019-08-11 19:29:19 · 343 阅读 · 0 评论 -
插入排序-Insertion Sort
插入排序插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序分析def insert_sort(alist): # 从第二个位置,即下标为1的元素开始向前...原创 2019-08-11 19:14:55 · 347 阅读 · 0 评论 -
选择排序-Selection sort
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个...原创 2019-08-11 17:33:18 · 224 阅读 · 0 评论 -
冒泡排序-Bubble Sort
冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相...原创 2019-08-11 17:21:52 · 247 阅读 · 0 评论 -
python系列之进程管理(Supervisor)
进程管理(Supervisor)进程管理工具启动/停止/自动重启程序, 而且还可以对多个程序分组管理(主要设置自动化任务,解放人的重复操作,比如启动服务器等)安装在python3兼容性不好, 需要使用python2进行安装sudo pip install supervisor配置运行echo_supervisord_conf命令输出默认的配置项,可以如...原创 2019-07-20 17:11:25 · 411 阅读 · 0 评论 -
python系列之单元测试(unittest)
单元测试1什么是单元测试程序开发过程中,写代码是为了实现需求。当我们的代码通过了编译,只是说明它的语法正确,功能能否实现则不能保证。 因此,当我们的某些功能代码完成后,为了检验其是否满足程序的需求。可以通过编写测试代码,模拟程序运行的过程,检验功能代码是否符合预期。单元测试就是开发者编写一小段代码,检验目标代码的功能是否符合预期。通常情况下,单元测试主要面向一些功能单一的模块进行。举...原创 2019-07-20 16:52:42 · 368 阅读 · 0 评论 -
python系列之--魔法方法
魔法方法魔法方法又叫运算符重载, 关键是重载俩字, 就是在特定条件下自动调用.下面就简单介绍下各种常见的魔法方法# __doc__:表示类的描述信息class Foo: """ 描述类信息,这是用于看片的神奇 """ def func(self): passprint(Foo.__doc__)#输出:类的描述信息# __module__ 表示...原创 2019-07-18 23:55:05 · 216 阅读 · 0 评论 -
python系列之内建函数sorted()
"""sorted: 可以对所有可迭代的对象进行排序操作,返回一个新的列表。语法:sorted(iterable, key=None, reverse=False)iterable -- 可迭代对象。key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。reverse -- 排序规则,reverse = Tr...原创 2019-07-18 21:27:14 · 178 阅读 · 0 评论 -
python包中__init__.py的作用
# 完整的包会包含__init__.py文件# 只要导入包中的内容,就会先执行该文件 一般用于包的初始化处理print("包的初始化")# init文件中的__all__可以控制 from 包 import *导入的内容__all__ = ["module_msgsend", "module_msgrecv", "name", "func_send", "func_recv"]...原创 2019-07-18 19:48:37 · 202 阅读 · 0 评论 -
python系列之模块random(常用方法)
python中用于产生随机数的模块是randomimport random# 生成一个0-1之间的随机浮点数print(random.random())# 生成一个[a, b]之间的随机浮点数print(random.uniform(0, 10))# 生成一个[a, b]之间的随机整数print(random.randint(0, 10))# 在指定集合[a, b) 中,以...原创 2019-07-18 17:46:50 · 161 阅读 · 0 评论 -
python系列之文件操作
1文件基础操作1.1什么是文件文件的种类很多以下是一些举例文件的目的就是把数据存起来(持久化), 而不必每次都重新生成.1.2文件的打开与关闭想一想:如果想用word编写一份简历,应该有哪些流程呢?打开word软件,新建一个word文件写入个人简历信息保存文件关闭word软件同样,在操作文件的整体过程与使用word编写一份简历的过程是很相似的打开文件,或者新建立一...原创 2019-07-18 16:44:34 · 172 阅读 · 0 评论 -
python系列之起源(什么是python)
python之父我总是认为学习一样新事物的最好方法就是听故事,那么就来听听python和他的父亲的故事.python起源Python 的创始人为吉多·范罗苏姆(Guido van Rossum)(图片来至百度)Python的作者,Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受...原创 2019-07-18 11:41:07 · 452 阅读 · 0 评论 -
python系列之面试者福音
Table of ContentsPython语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 @staticmethod和@classmethod4 类变量和实例变量5 Python自省6 字典推导式7 Python中单下划线和双下划线8 字符串格式化:\x和.format9 迭代器和生成器10 *args and **kwarg...原创 2019-07-17 21:59:47 · 2280 阅读 · 0 评论 -
python系列之--单例模式5种实现方式
转载:https://blog.youkuaiyun.com/super_little_newbie/article/details/84344166转载 2019-07-17 21:46:59 · 146 阅读 · 0 评论 -
python小白菜常遇知识点之列表修改
##列表循环中不要对其进行修改"""解决方案1"""name_list = ["张三", "李四", "王五"]temp = [] # 创建临时列表for value in name_list: if value == "张三": temp.append(value) break # 找到就结束for value in temp: # 用副本...原创 2019-04-06 22:55:00 · 209 阅读 · 0 评论 -
即时通讯之Socket.IO协程解决方案(eventlet)
Socket.IO1简介Socket.IO 本是一个面向实时 web 应用的 JavaScript 库,现在已成为拥有众多语言支持的Web即时通讯应用的框架。Socket.IO 主要使用WebSocket协议。但是如果需要的话,Socket.io可以回退到几种其它方法,例如Adobe Flash Sockets,JSONP拉取,或是传统的AJAX拉取,并且在同时提供完全相同的接口。尽管它...原创 2019-07-17 18:35:05 · 2168 阅读 · 0 评论 -
推荐系统
1-推荐系统简介1.1推荐系统概念及产生背景个性化推荐(推荐系统)经历了多年的发展,已经成为互联网产品的标配,也是AI成功落地的分支之一,在电商(淘宝/京东)、资讯(今日头条/微博)、音乐(网易云音乐/QQ音乐)、短视频(抖音/快手)等热门应用中,推荐系统都是核心组件之一。什么是推荐系统没有明确需求的用户访问了我们的服务, 且服务的物品对用户构成了信息过载, 系统通过一定的规则对物...原创 2019-08-31 19:32:46 · 2171 阅读 · 0 评论 -
推荐系统算法-基于回归模型的协同过滤推荐
基于回归模型的协同过滤推荐如果我们将评分看作是一个连续的值而不是离散的值,那么就可以借助线性回归思想来预测目标用户对某物品的评分。其中一种实现策略被称为Baseline(基准预测)。Baseline:基准预测Baseline设计思想基于以下的假设:有些用户的评分普遍高于其他用户,有些用户的评分普遍低于其他用户。比如有些用户天生愿意给别人好评,心慈手软,比较好说话,而有的人就比较苛刻,总...原创 2019-08-31 19:55:48 · 1708 阅读 · 1 评论 -
推荐系统算法-基于矩阵分解的CF算法
基于矩阵分解的CF算法矩阵分解发展史raditional SVD:通常SVD矩阵分解指的是SVD(奇异值)分解技术,在这我们姑且将其命名为Traditional SVD(传统并经典着)其公式如下:Traditional SVD分解的形式为3个矩阵相乘,中间矩阵为奇异值矩阵。如果想运用SVD分解的话,有一个前提是要求矩阵是稠密的,即矩阵里的元素要非空,否则就不能运用SVD分解。很显然我...原创 2019-08-31 20:05:03 · 579 阅读 · 0 评论 -
推荐系统算法-基于矩阵分解的CF算法实现(一):LFM
基于矩阵分解的CF算法实现(一):LFMLFM也就是前面提到的Funk SVD矩阵分解LFM原理解析LFM(latent factor model)隐语义模型核心思想是通过隐含特征联系用户和物品,如下图:算法实现数据加载import pandas as pdimport numpy as npdtype = [("userId", np.int32), ("mov...原创 2019-08-31 20:26:29 · 1402 阅读 · 0 评论 -
推荐算法-基于矩阵分解的CF算法实现(二):BiasSvd
基于矩阵分解的CF算法实现(二):BiasSvdBiasSvd其实就是前面提到的Funk SVD矩阵分解基础上加上了偏置项。BiasSvd利用BiasSvd预测用户对物品的评分,k表示隐含特征数量:算法实现'''BiasSvd Model'''import mathimport randomimport pandas as pdimport numpy as np...原创 2019-08-31 20:30:10 · 3618 阅读 · 0 评论 -
推荐系统-基于内容的推荐算法(Content-Based)
基于内容的推荐算法(Content-Based)简介基于内容的推荐方法是非常直接的,它以物品的内容描述信息为依据来做出的推荐,本质上是基于对物品和用户自身的特征或属性的直接分析和计算。例如,假设已知电影A是一部喜剧,而恰巧我们得知某个用户喜欢看喜剧电影,那么我们基于这样的已知信息,就可以将电影A推荐给该用户。基于内容的推荐实现步骤画像构建。顾名思义,画像就是刻画物品或用户的特征。...原创 2019-08-31 20:36:55 · 3308 阅读 · 0 评论