自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hadoop基础

HadoopApache™ Hadoop® 是一个开源的, 可靠的(reliable), 可扩展的(scalable)分布式计算框架允许使用简单的编程模型跨计算机集群分布式处理大型数据集可扩展: 从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储可靠的: 不依靠硬件来提供高可用性(high-availability),而是在应用层检测和处理故障,从而在计算机集群之上提供高可用服务Hadoop能做什么?1.搭建大型数据仓库2.PB级数据的存储 处理 分析 统计等业务搜索引擎日志分

2020-08-15 23:15:06 293

原创 电商推荐系统(一)

电商推荐系统设计数据生命周期大数据处理流程项目系统结构数据源主要数据模型统计推荐模块历史热门商品统计近期热门商品统计商品平均评分统计基于LFM的离线推荐模块用ALS算法训练隐语义模型(LFM)基于模型的实时推荐模块推荐优先级计算其他形式的离线相似推荐基于内容的推荐基于物品的协同过滤推荐混合推荐数据生命周期大数据处理流程项目系统结构数据源商品信息 products.csv用户评分信息 ratings.csv主要数据模型统计推荐模块历史热门商品统计统计所有历史数据中每个商

2020-07-30 23:35:12 2240

原创 音乐推荐系统(二)

歌曲序列建模NLP场景下我是中国人 => 我 是 中国 人我 => [1,0,0,0] 1500是 => [0,1,0,0] 1500…1*4 vector one-hot encodingword => vectordistance similarity从word2vec到song2vec我们把歌曲的id序列取出来,类比于分完词后的句子,送到word2vec中去学习一下#coding: utf-8import multiprocessingimport g

2020-07-28 21:26:18 771

原创 音乐推荐系统(一)

音乐推荐系统数据获取数据说明歌单的形式歌曲的格式数据解析原始数据=>歌单数据歌单数据=>推荐系统格式数据保存歌单和歌曲信息备用python推荐系统库Surprise使用示例基本方法载入自己的数据集方法算法调参(让推荐系统有更好的效果)数据集上训练模型用协同过滤构建模型并进行预测movielens的例子音乐预测的例子用矩阵分解进行预测数据获取任何的机器学习算法解决问题,首先要考虑的是数据,数据从何而来?对于酷狗音乐/网易音乐这样的企业而言,用户的收藏和播放数据是可以直接获得的----歌单数

2020-07-27 20:55:30 6639 2

原创 Python数据结构与算法(六)树与树算法

树与树算法树树的概念树的术语树的种类树的存储与表示常见的一些树的应用场景二叉树二叉树的节点表示以及树的创建二叉树的遍历广度优先遍历(层次遍历)深度优先遍历树树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1.每个节点有零个或多个子节点;2.没有父节点的节点称为根节

2020-07-26 19:45:29 179

原创 python数据结构与算法(五) 排序与搜索

排序与搜索排序排序算法的稳定性冒泡排序冒泡排序的分析选择排序选择排序分析插入排序插入排序分析希尔排序快速排序归并排序常见排序算法效率比较搜索二分查找排序排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过

2020-07-25 22:27:31 160

原创 python数据结构与算法(四) 栈和队列

栈和队列栈栈结构实现栈的操作队列队列的实现操作双端队列操作实现栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。栈结构实现

2020-07-23 16:10:04 153

原创 python数据结构与算法(三) 链表

链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。链表的定义链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一

2020-07-22 22:54:41 314 1

原创 Python数据结构与算法(二) 顺序表

顺序表顺序表的基本形式顺序表的结构与实现顺序表的结构顺序表的两种基本实现方式一体式结构分离式结构元素存储区替换元素存储区扩充扩充的两种策略顺序表的操作增加元素删除元素Python中的顺序表list的基本实现技术顺序表的基本形式图a表示的是顺序表的基本形式,数据元素本身连续存储,每个元素所占的存储单元大小固定相同,元素的下标是其逻辑地址,而元素存储的物理地址(实际内存地址)可以通过存储区的起始地址Loc (e0)加上逻辑地址(第i个元素)与存储单元大小(c)的乘积计算而得,即:Loc(ei) = Lo

2020-07-21 18:48:14 107

原创 Python数据结构与算法(一) 时间复杂度 数据结构

算法 时间复杂度 数据结构算法的提出算法的概念算法的五大特性算法效率衡量执行时间反应算法效率时间复杂度与“大O记法”最坏时间复杂度时间复杂度的几条基本计算规则常见时间复杂度Python内置类型性能分析timeit模块list的操作测试list内置操作的时间复杂度dict内置操作的时间复杂度数据结构概念算法与数据结构的区别抽象数据类型(Abstract Data Type)算法的提出算法的概念算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当

2020-07-20 11:22:55 630

原创 matplotlib实例

球员能力图#_*_coding:utf-8 _*_import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertiesimport matplotlib.patches as mpatchesplt.style.use('ggplot')font=FontProperties(fname=r'c:\windows\fonts\simsun.ttc',size=1

2020-07-19 20:33:05 137

原创 matplotlib 基础(二)

注释#注释 xy--注释的起始点 xytext--字的起始坐标 frac--箭头占的比例plt.annotate('this is the bottom',xy=(0,1),xytext=(-4,20), arrowprops=dict(facecolor='r',frac=0.2, headwidth=10,width=10))plt.show()文字#family--字体 style-效果(斜体) weigh

2020-07-19 15:21:41 123

原创 matplotlib 基本图形

matplotlib基本图形散点图折线图条形图直方图饼状图箱形图颜色和样式颜色点,线的样式样式字符串面向对象VS Matlab Sytle子图Matplotlib对象简介实例多图网格图例坐标轴坐标轴范围坐标轴刻度添加坐标轴基本图形散点图import numpy as npimport matplotlib.pyplot as pltheight=[161,170,182,175,173,165]weight=[50,58,80,70,69,55]plt.scatter(height,weigh

2020-07-18 21:48:29 170

原创 pandas 时间日期 数据可视化

时间日期时间戳 tiimestamp:固定的时刻 -> pd.Timestamp固定时期 period:比如 2016年3月份,再如2015年销售额 -> pd.Period时间间隔 interval:由起始时间和结束时间来表示,固定时期是时间间隔的一个特殊时间日期在 Pandas 里的作用:1.分析金融数据,如股票交易数据2.分析服务器日志Python datetimepython 标准库里提供了时间日期的处理。这个是时间日期的基础。时间差字符串和 datetime 转

2020-07-17 18:39:59 1065

原创 pandas 索引和分组

索引和分组索引重复索引层次化索引Series 多层索引DataFrame 多层索引索引交换及排序按照索引级别进行统计索引与列的转换分组计算对 Series 进行分组对 DataFrame 进行分组通过字典分组通过函数来分组多级索引数据根据索引级别来分组数据聚合内置聚合函数自定义聚合函数应用多个聚合函数给不同的列应用不同的聚合函数重置索引分组运算和转换transformapply 函数apply 应用示例:用不同的分组平均值填充空缺数据索引行索引列索引索引的分类重复索引的处理重复索引层次化

2020-07-17 10:49:58 1561

原创 pandas基础计算

pandas基础计算重新索引seriesDataFrame丢弃部分数据函数应用apply: 将数据按行或列进行计算applymap: 将数据按元素为进行计算排序和排名数据唯一性及成员资格重新索引seriesDataFrame丢弃部分数据注:df仍然不变,drop相当于拷贝操作函数应用apply: 将数据按行或列进行计算applymap: 将数据按元素为进行计算排序和排名注:可用rank(method=‘first’)使得先出现的排名最高,否则默认是average.数

2020-07-15 16:38:54 132

原创 科学数据库 pandas核心数据结构

核心数据结构Series创建特性DataFrame创建列选择/增加/删除索引和选择Panel核心数据结构Series创建Series 是一维带标签的数组,数组里可以放任意的数据(整数,浮点数,字符串,python,object)。其基本的创建函数是:s=pd.Series(data,index=index)其中index是一个列表,用来作为数据的标签。data可以是不同的数据类型:python字典ndarray对象一个标量值,如3特性series对象的性质类ndarray对象

2020-07-15 15:58:11 285

原创 pandas快速入门

pandas创建数据集对象一维数组二维数组df.values:array([[ 1.18898298, -1.15011854, -0.70058776, 0.43906549],[-2.04154443, 1.08450747, -0.33544069, 1.96975377],[ 1.2041512 , -1.27771421, -0.23067059, 0.62906316],[-0.35235094, -1.70158492, -0.03429361, -0.330138

2020-07-14 23:01:01 88

原创 python基础 numpy

目录numpynumpy的创建numpy的基础运算numpy的索引numpy的array合并numpy的array分割numpy的copy&deep copynumpynumpy的创建import numpy as np#a=np.array([2,23,4],dtype=np.float64)b=np.array([[2,23,4],[2,32,4]])#两行三列的矩阵c=np.zeros((3,4))#全部为0的矩阵d=np.zeros((...

2020-07-14 12:54:55 103

原创 python基础(十一) 文件操作

文件操作(I/O技术)创建文件对象 open()open()函数用于创建文件对象,基本语法格式如下: open(文件名[,打开方式]) 如果只是文件名,代表在当前目录下的文件。文件名可以录入全路径,比如:D:\a\b.txt。为了减少“\”的输入,可以使用原始字符串:r“d:\b.txt”。示例如下: f = open(r"d:\b.txt",“w”) 打开方式有如下几种:文本文件对象和二进制文件对象的创建: 如果我们没有增加模式“b”,则默认创建的是文本文件对象,处理的基本单元是“字 符”。如

2020-07-12 18:34:40 499

原创 python基础(十) 异常

异常机制本质python 中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中 包含了该类异常的信息和对异常进行处理的方法。python 中一切都是对象,异常也采用对象的方式来处理。处理过程:抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该 异常的一个对象,停止当前执行路径,并把异常对象提交给解释器。捕获异常:解释器得到该异常后,寻找相应的代码来处理该异常当发生异常时,解释器会报相关的错误信息,并会在控制台打印出相关错误信息。我们 只需按照从上到下的顺序即可追溯(Track

2020-07-11 12:34:44 154

原创 python基础(九) 面向对象(三)

面向对象三大特征1.封装(隐藏)隐藏对象的属性和实现细节,只对外提供必要的方法。相当于将“细节封装起来”,只 对外暴露“相关调用方法”。 通过前面学习的“私有属性、私有方法”的方式,实现“封装”。Python 追求简洁的 语法,没有严格的语法级别的“访问控制符”,更多的是依靠程序员自觉实现。2.继承继承可以让子类具有父类的特性,提高了代码的重用性。 从设计上是一种增量进化,原有父类设计不变的情况下,可以增加新的功能,或者改进 已有的算法。3.多态多态是指同一个方法调用由于对象不同会产生不同的行为

2020-07-10 23:22:47 172

原创 python基础 面向对象

nonlocalnonlocal 用来声明外层的局部变量global 用来声明全局变量【操作】使用nonlocal 声明外层局部变量LEGB规则local(函数或者类的方法内部)–>enclosed(嵌套函数,一个函数包裹另一个函数,闭包)–>global (模块中的全局变量)–>Built in (python 为自己保留的特殊名称)面向对象面向对象和面向过程面向过程编程更加关注的是“程序的逻辑流程”,是一种执行者思维,适合小规模的程序。 思考–怎么按步骤实现?

2020-07-09 13:02:00 93

原创 python基础(六)函数(二)

函数也是对象,内存底层分析python中,“一起都是对象”。执行def定义函数后,系统就创建了相应的函数对象。创建了一个,可调用多次。变量的作用域(全局变量和局部变量)局部变量和全局变量同名,优先考虑内部的局部变量a=3 #全局变量def test01():b=4; #局部变量print(b*10)global a #如果要在函数内改变全局变量的值,增加global关键词说明a=300print(locals())print(globals())test01() #建立栈帧,局部

2020-07-08 21:50:36 138

原创 python基础(五)函数

range 对象range对象是一个迭代器对象,用来产生指定范围的数字序列。循环代码优化技巧1.尽量减少循环内部不必要的计算2.嵌套循环中,尽量减少内层循环的计算,尽可能向外提3.局部变量查询较快,尽量使用局部变量其他优化手段:1.连接多个字符串,使用join()而不使用+2.列表进行元素插入和删除,尽量在列表尾部操作使用zip()并行迭代可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。推导式创建序列推导式是从一个或者多个迭代器快速创建序列的

2020-07-08 00:11:07 81

原创 python基础(三)字典 集合

字典“键值对”的无序可变序列,字典中的每个元素都是一个"键值对",包含:“键对象”和“值对象”列表中通过“下标数字”找到相应的对象。字典通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如:整数,浮点数,字符串,元组。但是列表,字典,集合这些可变对象,不能作为“键”。并且“键”不可重复“值”可是任意的数据,并且可重复。字典的创建1.可以通过{},dict()创建字典对象2.通过zip()创建字典对象k=[“a”,“b”,“c”]v=[100,200,300]d=dict(zi

2020-07-07 17:29:17 148

原创 python基础(三)列表和元组

序列序列是一种数据存储方式,用来存储一系列数据。序列中存储的是整数对象的地址。常用的序列结构有:字符串,列表,元组,字典,集合列表列表:用来存储任意数目,任意类型的数据集合。python的列表大小可变,根据需要随时增加或减少。字符串是字符序列,列表是任何元素的序列。列表的创建1.基本语法[ ]创建a=[10,20,‘sxt’]2.list()创建使用list()可以将任何可迭代的数据转化成列表。3.range()可以帮助我们非常方便的创建整数列表。range([start,]en

2020-07-06 21:55:01 236

原创 python基础(二)

链式赋值同一个对象赋值给多个变量x=y=123即 x=123;y=123;系列解包赋值a,b,c=1,2,3即a=1 b=2 c=3注:可不借助中间变量实现变量互换a,b=10,20 #a=10;b=20;a,b=b,a #a=20,b=10;运算符/ 浮点数除法 8/2=4.0// 整数除法 7//2=4** 幂 2**3=8divmod()函数–同时得到商和余数:divmod(10,3)(3,1)时间的表示计算机中时间的表示

2020-07-06 00:40:22 444

原创 day1 每日作业

每日作业 python基础 day1Python格式-注意格式,对齐,句首最好不要留有空格mypy01.py:print(“a”)print(“b”)print(“c”)Python绘图mypy01.py:import turtlet=turtle.Pen()for x in range(360):t.forward(x)t.left(59)mypy02.py:#回执奥运五环import turtleturtle.width(10)turtle.color(“blue”

2020-07-05 18:47:25 173

空空如也

空空如也

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

TA关注的人

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