rainy

Python爬取南京市往年天气预报,使用pyecharts进行分析

北城余情 提交于 2020-11-21 03:31:44
上一次分享了使用matplotlib对爬取的豆瓣书籍排行榜进行分析,但是发现python本身自带的这个绘图分析库还是有一些局限,绘图不够美观等,在网上搜索了一波,发现现在有很多的支持python的绘图库可以使用,本次尝试使用pyecharts对爬取的数据进行分析,然后发现这个库实在是太好用了,生成的库也很好看,还能生成动态图,简直是进行数据分析的一大神器! pyecharts: pyecharts 是一个封装百度开源图表库echarts的包,使用 pyecharts 可以生成独立的网页,也可以在flask、django中集成使用。 本次爬取的首页地址是: http://www.tianqihoubao.com/lishi/nanjing.html 爬取步骤: 爬取主网页,获取进入每个南京市具体年份月份的天气数据的链接 爬取上方获取的具体链接的数据 存储数据 对数据进行筛选后使用pyecharts进行分析 话不多说,马上开始吧! 步骤一 从上图可知,我们需要先获取进入每个具体月份的链接,才能爬取想要的数据,所以首先定义获取具体链接的函数,然后在爬取会方便很多;查看网页源代码查找目标所在位置,本次我依然是使用lxml库来进行数据的爬取(PS:感觉习惯了lxml其他库就不好用了),这里需要注意的是,我是将获得的结果一个一个的存入列表,这种方法很笨,但作为菜鸟的我确实不知道其他方法了

python数据分析之Pandas:基本功能介绍

梦想与她 提交于 2020-08-15 04:39:37
Pandas 有两个主要的数据结构: Series 和 DataFrame . Series 是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签构成.来看下它的使用过程 In [1]: from pandas import Series,DataFrame In [2]: import pandas as pd In [3]: obj=Series([4,7,-5,3]) In [5]: obj Out[5]: 0 4 1 7 2 -5 3 3 dtype: int64 通过 Series 生成的对象左边是索引,右边是具体的值.如果我们没有指定索引,那么会默认的生成一个.可以通过 values 和 index 来查看对应的值和索引. In [6]: obj.values Out[6]: array([ 4, 7, -5, 3]) In [7]: obj.index Out[7]: RangeIndex(start=0, stop=4, step=1) 如果我们想指示索引,可以在生成的时候通过 index 来指示对应的索引 In [8]: obj2=Series([4,7,-5,3],index=['a','b','c','d']) In [9]: obj2 Out[9]: a 4 b 7 c -5 d 3 dtype: int64 通过对应的索引就可以访问对应的值

【机器学习】隐马尔可夫模型(HMM)

大兔子大兔子 提交于 2020-08-09 22:25:56
隐马尔可夫模型(HMM) 1.部分参考内容 2.引言 3.隐马尔可夫模型 3.1 马尔可夫过程 3.2 隐马尔可夫模型 3.3 HMM模型的五元组 4.评估问题 4.1 直接方法 4.2前向算法 4.3后向算法 4.4前向后向算法 5.解码问题 6.学习问题 1.部分参考内容 Youtube (无中文字幕) 隐马尔可夫模型(HMM)详解 一次性弄懂马尔可夫模型、隐马尔可夫模型、马尔可夫网络和条件随机场 2.引言 Alice和Bob住的很远,只能通过电话交流。 Bob的心情会随天气的好坏而变化,天气sunny的时候,他就happy,天气rainy的说话,他就grumpy。Bob通过电话告诉Alice他很happy,Alice就可以推测Bob那的天气是sunny,反之,也可以推测出rainy。 那么,如果问题再稍微复杂一点呢。 假如Bob的心情在sunny的时候并不总是happy,也有可能是grumpy,而天气是rainy的时候,Bob的心情也可能是happy。那么即便Alice知道了Bob的心情,她也不能确定Bob所在地的天气到底怎样。 假设Alice已经计算出sunny的时候Bob心情为happy的概率和grumy的概率,还有rainy时候happy和grumpy的概率。那么,Alice虽然不像之前那样可以百分百确定天气,但是还是可以有较大概率推测出天气的。

为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用枚举?

白昼怎懂夜的黑 提交于 2020-07-27 22:03:42
在阅读《阿里巴巴Java开发手册》时,发现有一条关于二方库依赖中接口返回值不允许使用枚举类型的规约,具体内容如下: 在谈论为什么之前先来科普下什么是二方库, 二方库 也称作二方包,一般指公司内部发布到中央仓库,可供公司内部其他应用依赖的库(jar 包)。 那么 一方库 便是本工程内部子项目模块依赖的库; 三方库 为公司之外的开源库,比如像 fastjson、easyexcel 这种。 下面我们就通过一个例子来看下为什么阿里巴巴不允许返回枚举类型或者包含枚举类型的 POJO 对象。 比如星巴克提供了 0.0.1 版本的二方库,定义了一个 Starbucks 类,里面包含了枚举类型的 SizeEnum ,里面分别是中杯、大杯、特大杯。 public class Starbucks implements Serializable { private Long id; private String name; private Integer capacity; private SizeEnum sizeEum; } public enum SizeEnum { TALL(1), GRANDE(2), VENTI(3) } 定义了一个服务类,实现了根据 id 获取星巴克的方法: public class StarbucksImpl implements StarbucksService {

为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用枚举?

▼魔方 西西 提交于 2020-07-24 03:16:16
在阅读《阿里巴巴Java开发手册》时,发现有一条关于二方库依赖中接口返回值不允许使用枚举类型的规约,具体内容如下: 在谈论为什么之前先来科普下什么是二方库, 二方库 也称作二方包,一般指公司内部发布到中央仓库,可供公司内部其他应用依赖的库(jar 包)。 那么 一方库 便是本工程内部子项目模块依赖的库; 三方库 为公司之外的开源库,比如像 fastjson、easyexcel 这种。 下面我们就通过一个例子来看下为什么阿里巴巴不允许返回枚举类型或者包含枚举类型的 POJO 对象。 比如星巴克提供了 0.0.1 版本的二方库,定义了一个 Starbucks 类,里面包含了枚举类型的 SizeEnum ,里面分别是中杯、大杯、特大杯。 public class Starbucks implements Serializable { private Long id; private String name; private Integer capacity; private SizeEnum sizeEum; } public enum SizeEnum { TALL(1), GRANDE(2), VENTI(3) } 定义了一个服务类,实现了根据 id 获取星巴克的方法: public class StarbucksImpl implements StarbucksService {

《Python数据分析与机器学习实战-唐宇迪》读书笔记第7章--决策树

本秂侑毒 提交于 2020-04-13 20:18:34
【今日推荐】:为什么一到面试就懵逼!>>> python数据分析个人学习读书笔记-目录索引 第7章决策树   决策树算法是机器学习中最经典的算法之一。大家可能听过一些高深的算法,例如在竞赛中大杀四方的Xgboost、各种集成策略等,其实它们都是基于树模型来建立的,掌握基本的树模型后,再去理解集成算法就容易多了,本章介绍树模型的构造方法以及其中涉及的剪枝策略。 7.1决策树原理   先来看一下决策树能完成什么样的任务。假设一个家庭中有5名成员:爷爷、奶奶、妈妈、小男孩和小女孩。现在想做一个调查:这5个人中谁喜欢玩游戏,这里使用决策树演示这个过程,如图7-1所示。      图7-1 决策树分类方法   开始的时候,所有人都属于一个集合。第一步,依据年龄确定哪些人喜欢玩游戏,可以设定一个条件,如果年龄大于15岁,就不喜欢玩游戏;如果年龄小于15岁,则可能喜欢玩游戏。这样就把5个成员分成两部分,一部分是右边分支,包含爷爷、奶奶和妈妈;另一部分是左边分支,包含小男孩和小女孩。此时可以认为左边分支的人喜欢玩游戏,还有待挖掘。右边分支的人不喜欢玩游戏,已经淘汰出局。   对于左边这个分支,可以再进行细分,也就是进行第二步划分,这次划分的条件是性别。如果是男性,就喜欢玩游戏;如果是女性,则不喜欢玩游戏。这样就把小男孩和小女孩这个集合再次分成左右两部分。左边为喜欢玩游戏的小男孩

[转帖]linux中的ldd命令简介

风流意气都作罢 提交于 2020-04-12 12:02:06
linux中的ldd命令简介 https: // blog.csdn.net/nzjdsds/article/details/86759843 在linux中, 有些命令是大家通用的, 比如ls, rm, mv, cp等等, 这些我觉得没有必要再细说了。 而有些命令, 只有开发人员才会用到的, 这类命令, 作为程序员的我们, 是有必要了解的, 有的甚至需要熟练使用。 有的人总说, 这些命令不重要, 用的时候去查就行了, 这么多么扯淡的说法啊。 具体用法细节是可以可查, 但至少得知道有ldd这个东西吧。连ldd都不知道, 怎么知道ldd是干啥的呢? 在本文中, 我们来介绍一下ldd命令, 尽管它非常简单。 哦, 我突然想起来, 我有个朋友, 她的名字的是三个字, 首写字母刚好是l, d, d, 有点意思。 在linux中, ldd是list, dynamic, dependencies的缩写, 意思是, 列出动态库依赖关系。 当然, 你也可以用ldd --help或者man ldd来看其用法。 下面, 我们也来看看: test.h的内容为: void print(); test.c的内容为: #include <stdio.h> #include " test.h " void print() { printf( " rainy days\n " ); } main.c的内容为:

梳理Ubuntu命令(文件查找和比较)---strings

可紊 提交于 2020-04-06 02:38:07
声明版权归原作者所有,只用于学习。 我按照阿里的公开学习链接进行梳理的,网站里面很详细。 http://man.linuxde.net/ strings 命令在对象文件或二进制文件中查找可打印的字符串。字符串是 4 个或更多可打印字符的任意序列,以换行符或空字符结束。 strings 命令对识别随机对象文件很有用。 使用权限: 所有使用者 语法格式: strings [ -a ] [ - ] [ -o ] [ -t Format ] [ -n Number ] [ -Number ] [ File ... ] 使用说明: 在对象文件或二进制文件中查找可打印的字符串。 主要参数: -a – –all:扫描整个文件而不是只扫描目标文件初始化和装载段 -f –print-file-name:在显示字符串前先显示文件名 -n –bytes=[number]:找到并且输出所有NUL终止符序列 - :设置显示的最少的字符数,默认是4个字符 -t –radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制 -o :类似–radix=o -T –target= :指定二进制文件格式 -e –encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit @