开工之前要先了解一下瓦片地图,瓦片地图金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变.实现原理就是,首先确定地图服务平台所要提供的缩放级别的数量N,把缩放级别最低.地图比例尺最大的地图图片作为金字塔的底层,即第0层,并对其进行分块,从地图图片的左上角开始,从左至右.从上到下进行切割,分割成相同大小(比如256x256像素)的正方形地图瓦片,形成第0层瓦片矩阵;在第O层地图图片的基础上,按每2x2像素合成为一个像素的方法生成第1层地图图片,并对其进…
Numpy库学习笔记: 1.array()   创建数组或者转化数组 例如,把列表转化为数组 >>>Np.array([1,2,3,4,5]) Array([1,2,3,4,5]) 还有,元组,range对象,arange 等转为数组 2.numpy库还有很多数组创建函数,如: Np.linspace(0,10,11)   #等差数组 Np.logspace(1,100,10)  #对数数组 3.一维数组,二维数组等,如: Np.zeros((3,3))   #全为0的33二维数组 Np…
目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Acceptor 系统函数accept Socket的封装 Acceptor的封装 Acceptor时序图. 简单测试程序 Acceptor Connctor 运行日志 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor 标签: muduo Connector Acceptor…
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoop() queueInLoop() wakeup() handleRead() doPendingFunctors() 总结 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 上篇文章为EventLoop添加了一个定时器Fd,为EventLoop增加了3个接口:runAfter(…
目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结构. Timer Timer的容器. TimerQueue私有接口介绍. 更新定时器 时序图 TimerQueue源码 TimerQueue使用示例 muduo网络库学习笔记(三)TimerQueue定时器队列 TimerQueue是EventLoop的组件之一,可以提供定时任务,和周期任务. 本章…
C++STL标准库学习笔记(三)multiset STL中的平衡二叉树数据结构 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标记了出来. 介绍: 有时需要在大量增加,删除数据的同时,还需要大量数据的查找 我们希望增加数据,删除数据,查找数据都能在log(n)复杂度完成 排序+二分查找显然不行,因为加入新数据就要重新排序. 在这个时候!我们就可以使用"平衡二叉树"数据结构存放数据,体现在STL中就是以下四种&quo…
Numpy库 numpy:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成,并可与C++/Fortran语言无缝结合.树莓派Python v3默认安装已经包含了numpy. ①    导入模块 >>> import numpy as np ②    生成数组 >>> np.array([1, 2, 3, 4, 5])        # 把列表转换为数组 array([1, 2, 3, 4, 5]) >>…
前言: 近来在学习STL标准库,做一份笔记并整理好,方便自己梳理知识.以后查找,也方便他人学习,两全其美,快哉快哉! 这里我会以中国大学慕课上北京大学郭炜老师的<程序设计与算法(一)C语言程序设计>中的十二章十三章为学习资料来做笔记.并且我会附上代码(只要我不偷懒的话).若有没学习到的部分,我会继续找资料来更新学习笔记. STL(Standard Template Library,标准模板库) 包含一些常用的算法如排序查找,和常用的数据结构如:可变长数组,链表,字典等. 优点:使用方便,(运行…
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自己还是一个人.     如果你想要学习关于编码风格方面的知识,建议直接阅读参考资料中的文章,比看我这里写的好多了,这是真心话,我只是写自己的笔记.便于自己在以后的编码中注意. [问题背景] 在做开发工作的时候,总是被说编码风格不好,现在自己找了Google Java编程风格指南进行学习,希望可以写出…
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自己还是一个人.     如果你想要学习关于编码风格方面的知识,建议直接阅读参考资料中的文章,比看我这里写的好多了,这是真心话,我只是写自己的笔记.便于自己在以后的编码中注意. [问题背景] 在做开发工作的时候,总是被说编码风格不好,现在自己找了Google Java编程风格指南进行学习,希望可以写出…
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自己还是一个人.     如果你想要学习关于编码风格方面的知识,建议直接阅读参考资料中的文章,比看我这里写的好多了,这是真心话,我只是写自己的笔记.便于自己在以后的编码中注意. [问题背景] 在做开发工作的时候,总是被说编码风格不好,现在自己找了Google Java编程风格指南进行学习,希望可以写出…
尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.python-requests.org/zh_CN/latest/: requests库作者Kenneth Reitz个人主页:https://www.kennethreitz.org/: requests库github地址:https://github.com/requests/requests: requ…
Pandas基本介绍——DataFrame入门学习 前篇文章中,小生初步介绍pandas库中的Series结构的创建与运算,今天小生继续“死磕自己”为大家介绍pandas库的另一种最为常见的数据结构DataFrame. DataFrame是二维标记的数据结构(三维结构请看Panel,后面为大家介绍),你可以把它看成一张电子表格或者SQL关系库中的表格.DataFrame是pandas库中最为常见的一种数据结构,正如Series一样,它也有很多不同的创建方法: Dict of 1D ndarray…
一.libev库的安装 因为个人的学习环境是在ubuntu 12.04上进行的,所以本节仅介绍该OS下的安装步骤. 使用系统工具自动化安装: sudo apt-get install libev-dev 执行该命令会自动安装其所依赖的其他包.编译程序时,需添加 -lev参数 源码安装,从网上下载最新的安装包,一般使用以下几个命令完成安装: tar -zxvf 安装包 ./configure make make install 安装完毕.…
今天做了一个简单的无缝循环滚动的实例,这种实例在网页中其实还挺常见的,下面分享一下我的学习收获. 首先,无缝滚动的第一个重点就是——动.关于怎么让页面的元素节点动起来,这就得学明白关于JavaScript中定时器的相关知识. JS中的创建定时器的方法包括两种:setTimeout和setInterval.首先它们接收的参数相同:第一个参数是一个函数,用于定时器执行,第二个参数是一个数字,代表过多少毫秒之后定时器执行函数.它们的不同在于:setTimeout 是在经过指定的时间之后,只执行一次函数…
1.简介 Python的turtle库的易操作,对初学者十分友好.对于初学者来说,刚学编程没多久可以写出许多有趣的可视化东西,这是对学习编程极大的鼓舞,可以树立对编程学习的信心.当然turtle本身也十分有趣,可以用它画出很多奇妙的图案. 2.绘图的基本知识 (1)画布(canvas) 画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置. 设置画布大小 turtle.screensize(canvwidth=None,canvheight=None,bg=None),参数…
1.    Requests库安装 Windows平台安装说明: 直接以管理员身份打开cmd运行界面,使用pip管理工具进行requests库的安装. 具体安装命令如下: >pip install pip 2.    Requests库安装验证 Requests库安装完成后,验证安装是否成功.直接在python IDLE GUI环境下导入requests库,并简单使用requests.get(url)测试. 测试命令如下: >>>import requests >>&g…
最近为了在C++中使用矩阵运算,简单学习了一下Eigen矩阵库.Eigen比Armadillo相对底层一点,但是只需要添加头文库即可使用,不使用额外的编译和安装过程. 基本定义 Matrix3f是3*3矩阵,MatrixXf表示矩阵维数不确定,MatrixXf m(3,4)表示3*4矩阵. 'MatrixXd是double型,MatrixXf是float`型. 列优先和行优先 Eigen中存储Matrix用的是column-major,但是初始化赋值的时候是row-major Matrix3d…
这些函数在字符数组类(numpy.char)中定义. add() 对两个数组的逐个字符串元素进行连接 multiply() 返回按元素多重连接后的字符串 center() 居中字符串 capitalize() 将字符串第一个字母转换为大写 title() 将字符串的每个单词的第一个字母转换为大写 lower() 数组元素转换为小写 upper() 数组元素转换为大写 split() 指定分隔符对字符串进行分割,并返回数组列表 splitlines() 返回元素中的行列表,以换行符分割 strip…
前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标记了出来,这一篇后面主要都是我的记录了,为了防止大片蓝色字体出现,后面就不改蓝色了. 在上篇博客的时候就在想multiset去掉multi会是啥,然后就来到了这一节,set. 1.1 set的作用 set和multiset的区别在于容器内不能有重复元素 a和b重复等价于"a必须排在b前面"和"b必须排在a前面"都不成立.这都强调多少次了,不过每一次…
二.STL中的二分查找算法 1.binary_search 2.lower_bound 3.upper_bound 记得#include<algorithm>! 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标记了出来. 1.1用binary_search进行二分查找(用法一) 在从小到大排好序的基本类型数组上进行二分查找 binary_search(数组名+n1, 数组名+n2,值); n1和n2都是int类型表达式,可…
一.引入相关库 %matplotlib inline import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font=FontProperties(fname=r'c:/windows/fonts/msyh.ttf',size=10) 二.一元回归范例 def runplt(): plt.figure() plt.title(u'披萨价格与直径数据',fontproperties=fo…
# Extracting features from categorical variables #Extracting features from categorical variables 独热编码 from sklearn.feature_extraction import DictVectorizer onehot_encoder=DictVectorizer() instance=[{'city':'New York'},{'city':'San Francisco'}, {'city…
# K的选择:肘部法则 如果问题中没有指定 的值,可以通过肘部法则这一技术来估计聚类数量.肘部法则会把不同 值的成本函数值画出来.随着 值的增大,平均畸变程度会减小:每个类包含的样本数会减少,于是样本离其重心会更近.但是,随着 值继续增大,平均畸变程度的改善效果会不断减低. 值增大过程中,畸变程度的改善效果下降幅度最大的位置对应的 值就是肘部. import numpy as np import matplotlib.pyplot as plt %matplotlib inline #随机生成一…
一.创建一个线程 创建线程 boost::thread myThread(threadFun); 需要注意的是:参数可以是函数对象或者函数指针.并且这个函数无参数,并返回void类型. 当一个thread执行完成时,这个子线程就会消失.注意这个线程对象不会消失,它仍然是一个还处在它的生存期的C++对象.同理,当对一个堆上的线程对象的指针调用delete时候,线程对象被销毁,操作系统的线程并不能保证就消失. 放弃时间片 boost::thread::yield(); 当前线程放弃余下的时间片. 等…
1.请求异常处理 请求异常类型: 请求超时处理(timeout): 实现代码: import requestsfrom requests import exceptions        #引入exceptions A:请求超时 def timeout_request():    try:        response = requests.get(build_uri('user/emails'), timeout=0.1)    except exceptions.Timeout as e:…
Libevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,Libevent在底层select.pool.kqueue和epoll等机制基础上,封装出一致的事件接口.可以注册可读.可写.超时等事件,指定回调函数:当事件发生后,Libevent调用回调函数,可以在回调函数里实现自定义功能.编译库代码,编译脚本会判断OS支持哪种类型的事件机制(select.epoll或kqueue),然后条件编译相应代码,供上层使用的接口仍然是保持统一的. 著名分布式缓存软件memc…
一.Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形. 二.基础概念 1.画布:画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置.常用的画布方法有两个:screensize()和setup(). (1)turtle.screensize(canvwidth, canvheight, bg):参数分别为…
timer   使用方法     #include <boost/timer.hpp> #include <iostream> using namespace std; using namespace boost; int main() { timer t;//声明一个计时器对象,開始计时 cout<<"max:"<<t.elapsed_max()/3600<<"h"<<endl; //可度量的…
零.背景 node.js 应用中,req.query / req.body 传来的参数需要做 valication( 合法性验证 ) 一.安装 https://github.com/hapijs/joi npm i joi --save const Joi = require('Joi'); 二.基本用法 Joi.validate(value, schema, [options]); 1.通过验证 这里我们定义了三个字段:name(姓名).age(年龄).sex(性别) router.post(…