自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Alex_Zhonghang的IT博客

极客世界,希望能把技术的狂热带给每个喜欢开发的人

  • 博客(71)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Knuth公平洗牌算法(给一个数组随机排序)

洗牌算法的重要原则就是“全面”而且“公平”,并且要使用尽可能小的时间复杂度来实现。什么叫公平呢?一旦你开始思考这个问题,其实答案不难想到。洗牌的结果是所有元素的一个排列。一副牌如果有 n 个元素,最终排列的可能性一共有 n! 个。公平的洗牌算法,应该能等概率地给出这 n! 个结果中的任意一个。如思考到这一点,我们就能设计出一个简单的暴力算法了:对于 n 个元素,生成所有的 n! 个排列,然后,随机抽一个。这个算法绝对是公平的。但问题是,复杂度太高。复杂度是多少呢?O(n!)。因为,n 个元素一共.

2020-11-23 21:55:11 7

原创 如何实现js数组的扁平化(数组降维:多维变为一维)

变为1维function flatten(arr) { const result = []; arr.forEach((i) => { if (Array.isArray(i)) result.push(...flatten(i)); else result.push(i); }) return result;}// Usageconst problem = [1, 2, 3, [4, 5, [6, 7], 8, 9]];

2020-10-28 12:22:36 39

原创 全面解析JavaScript中对于字符串子串的查询方法

String.prototype.includes()方法String.prototype.indexOf()方法String.prototype.contains()方法底层手写实现

2020-10-24 14:32:41 23

原创 前端性能——JS的防抖和节流是什么?

数个月之前,在一次前端的性能优化中,接触到了JS中防抖和节流,一开始还不明白他们的应用在哪里,可后来才知道,这是前端中最基础的性能优化,在绑定 scroll 、resize 这类事件时,当它发生时,它被触发的频次非常高,间隔很近。如果事件中涉及到大量的位置计算、DOM 操作、元素重绘等工作且这些工作无法在下一个 scroll 事件触发前完成,就会造成浏览器掉帧。加之用户鼠标滚动往...

2020-10-23 17:26:47 5310

原创 npm安装过程中core-js始终无法安装成功报错问题

截止目前core-js这个npm包的更新版本在3.6+对于从github clone好的项目而言,使用npm install 或者 cnpm install 经常会因为该包版本过高而导致漏包现象因此需要使用较低版本手动单独安装:cnpm install core-js@2 --save...

2020-09-16 20:30:40 228

原创 celery在Django3.0中的应用——个人备忘录

写在前面:本文章非完整的技术博客,只用于记录个人开发中遇到的问题,在项目中需求通过api处理爬虫,但由于爬虫的运行时间较长,所以需要 采用异步任务的方式处理请求,因此采用了celery和Django的结合。1.框架版本Python 3.7Django 3.0 +celery 4.4.2redis 3.22.基本视图结构3.需要预先安装的组件及库...

2020-04-14 19:29:36 172

原创 前端性能——图片相关的优化

一、一张JPG图片的解析过      对于原图片来说要进行颜色空间的转换,将RGB的颜色空间转到其他的颜色空间;然后进行重采样,区分高频和低频的颜色变换,从而进一步进行DCT的过程(即对高频的颜色变化采样过程进行压缩),最后对数据进行量化,再进行encoding编码。总体来说通过图片上方的五个过程就得到了JPG-Compressed Image Date。      JPG格式的图片采...

2019-02-27 14:57:05 121

原创 前端性能——资源合并与压缩

一、在http请求的过程中如何提高性能①DNS是否可以通过缓存减少DNS的查询时间②网络请求的过程走最近的网络环境③相同的静态资源是否可以缓存④能否减少http请求的大小⑤能否减少http请求的个数⑥进行服务端渲染而非浏览器渲染深入理解http请求的过程是前端性能优化的核心 二、资源的合并与压缩①减少http请求的数量②减少请求资源的大小 三、压...

2019-02-27 13:46:01 105

原创 Vue别名配置简录(alias配置)

配置文件的路径:项目名/build/webpack.base.conf.js相关函数:resolvefunction resolve (dir) { return path.join(__dirname, '..', dir)}字段配置:aliasalias: { 'vue$': 'vue/dist/vue.esm.js', 'src': resolve(...

2019-02-18 15:40:06 1498

原创 使用Scrapy爬取租号玩网站lol待租账号信息(完整代码)

一、项目Githun地址https://github.com/zhonghangAlex/LOLSpider欢迎大家访问下载! 二、LoLSpider 本项目基于scrapy,对租号玩网站的英雄联盟相关出租账号信息进行爬取,并且存取入库,使用随机User-Agent和随机高匿IP(Based on scrapy, this project crawls the rental...

2019-01-20 20:32:42 1204 2

原创 elasticsearch、elasticsearch-head、kibana(dev tools插件)的安装配置

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创...

2019-01-04 18:48:54 766

原创 scrapy shell加入user_agent

我们在运用scrapy shell调试的时候,通常会遇到返回的response的状态码为302,这是因为没有加User_Agent的原因。比如爬取拉勾网的时候,没加请求头给我返回302重定向,如图: 所以我们可以在进行scrapy shell 调试的时候,加入User_Agent进行伪装:scrapy shell -s USER_AGENT="Mozilla/5.0 (Windows...

2019-01-02 02:40:34 495

原创 windows下的命令行利器——cmder

cmder是一款基于windows的增强命令行工具,不仅可以使用所有windows的命令,还可以使用linux和shell的常用命令1. 安装包安装包链接下载后,直接解压即用2.修改命令提示符λ为$进入解压后的cmder的目录,进入vendor,打开init.bat文件修改第15行的代码:@prompt $E[1;32;40m$P$S{git}{hg}$S$_$...

2018-12-31 18:27:50 95

原创 基于scrapy框架存储爬虫数据的四种方法(自定义json文件、json export方法、同步存储数据库、异步存储数据库)

最近在学习scrapy爬虫框架,感受到了它的强大之处,在接触各种数据存储方法后,希望进行一个简单的总结。总的来说,爬虫常用的数据存储方法,无非就是保存在本地的json格式化文件或者是数据库中,但在学习的过程中,了解了每种场景中不一样的用法,分别是:自定义json文件、json export方法、同步存储数据库、异步存储数据库四种方法。下面就结合代码简要进行一个介绍。说到数据的存储,了解sc...

2018-12-28 23:14:21 569

原创 docker概况及整体架构

Docker是2013发起的一个项目,早在2013年,Docker自诞生起,就是整个技术界的明星项目。Docker是一个云开源项目,托管在github,任何人都可以通过 git clone 或者fork参与进来,本身是基于linux的容器技术,采用当时如日中天google新推出的Go语言实现。采用apache 2.0协议开源。一、Go语言与Docker 相比Go语言与其它语言的对比,国...

2018-12-27 23:12:39 165

原创 docker安装(Centos7服务器)

安装docker1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 $ uname -r2、使用 root 权限登录 Centos。确保 yum 包更新到最新。$ sudo yum update3、卸载旧版本(如果安装过旧版本的话...

2018-12-27 21:34:28 103

原创 爬虫去重策略

我们都知道在获取网站的各层url的过程中,每一层都会有相互指向的url,这样就形成了一个闭合的url网络,那么要想实现爬虫一步步获取url,不陷入死循环,必须进行去重的操作1.将访问过的url保存到数据库中       这种方式是最简单方式,当我们在获取下一个url的时候,就到数据库中查询这个url是否存在,虽然数据库有缓存,但是每个url都从数据库中查找,这样以来效率会非常的低,但是...

2018-12-25 17:45:11 117

原创 深度优先和广度优先算法的Python实现(爬虫原理)

 构造如下的一个二叉树,简要分析一下,在爬虫应用过程中,对深度优先和广度优先算法的实现: 一、深度优先def depth_tree(tree_node): if tree_node is not None: print(tree_node._data) if tree_node._left is not None: ...

2018-12-25 17:17:02 1112 1

原创 Vue.js源码目录及构建

1.Vue.js 目录结构下面是Github上Vue源码的目录结构其中src为源码部分,结构如下:src├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持├── server # 服务端渲染├── sfc # ...

2018-12-03 15:20:54 3830

原创 实现手机注册——使用Python(DRF应用)接通腾讯云短信服务接口

本篇以注册或者登陆的单次单人发送场景为例,使用Python进行短信接口的调试,从而实现DRF应用的用户注册功能,至于群发或者语音等短信的场景,合此类似,本篇不做完整介绍。一、申请腾讯云签名并创建模板  首先在腾讯云服务中找到短信服务,点击开通,填写基本信息,最后生成如下:其中SDK AppID和App key是在https请求发送是的必要参数。然后需要创建一个签名,签名相当...

2018-12-02 15:33:02 15227

原创 基于PTB数据集实现RNN-LSTM循环神经网络(智能填词)

本篇直入主题,做一篇学习的记录,在学习RNN的时候,跟着教程敲了一个案例分为处理方法文件,神经网络模型文件,训练方法文件,测试文件所有的操作和重要内容都在代码中作了详细的注释一、目标神经网络模型 二、数据集PTB数据集下载地址http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz或者使用...

2018-12-01 16:25:53 10785

原创 JavaScript中4种常见的内存泄漏及避免方法

垃圾回收算法       常用垃圾回收算法叫做**标记清除 (Mark-and-sweep) **,算法由以下几步组成: 1、垃圾回收器创建了一个“roots”列表。roots 通常是代码中全局变量的引用。JavaScript 中,“window” 对象是一个全局变量,被当作 root 。window 对象总是存在,因此垃圾回收器可以检查它和它的所有子对象是否存在(即不是垃圾); ...

2018-11-27 18:53:25 489

原创 前后端分离模式下JWT用户认证及其在DRF中的应用

       在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了。于是我们的程序就不知道谁是谁,就要再验证一次。所以为了保证系统安全,我们就需要验证用户否处于登录状态。 一、传统的用户认证方式传统认证方式前后端分离通过Restful API进...

2018-11-27 17:46:02 928

原创 Python如何在列表,字典,集合中根据条件筛选数据?

在编程中我们经常遇到下面的一些问题:过滤掉列表[3, 9, -1, 10, 20, -2...]中的负数 筛选出字典{'Lilei': 79, 'Tim': 88, 'Lucy':92...}中的值高于90的项 筛选出集合{77, 89, 32, 20...}中能被3整除的元素 在Python中,通用的做法是直接使用循环迭代:data = [1, 5, -3, -2, 6, ...

2018-11-27 13:48:29 6096

原创 Vue相关的学习视频分享

这是我的网盘里面收集的关于Vue的学习视频,分享出来:链接:https://pan.baidu.com/s/1dvdVdI9zqUNbPhIwQxX43Q 提取码:88gm 这里面包括下面的内容: 

2018-11-26 21:49:31 109

原创 TensorFlow实现CNN卷积神经网络对手写数字集mnist的模型训练

mnist手写数字集相当于是TensorFlow应用中的Helloworld。在学习了TensorFlow的卷积神经网络应用之后,今天就分步解析一下其应用过程 一、mnist手写数字数据集        MNIST是深度学习的经典入门demo,他是由6万张训练图片和1万张测试图片构成的,每张图片都是28*28大小(如下图),而且都是黑白色构成(这里的黑色是一个0-1的浮点数,黑色越...

2018-11-26 21:44:38 940 1

原创 TensorFlow报错Fetch argument None has invalid type class 'NoneType'

写了一个TensorFlow卷积神经网络的训练程序。基于mnist数据集进行训练和测试。但是在程序运行的时候报出了下面的错误。Traceback (most recent call last): File "nn_eg.py", line 104, in <module> train_loss, train_op = sess.run([loss, tra...

2018-11-26 19:50:05 7358 4

原创 激活函数的生成及图像

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。        激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这...

2018-11-26 14:31:38 517

原创 初探梯度下降解决线性回归问题

线性回归一般用于预测问题,比如股票的涨跌,通过苹果的股票图可以预测其以后的发展。梯度下降是机器学习中最核心的优化算法。今天以一个小例子进行一个相对综合的应用,使用梯度下降解决一个线性回归问题,我们使用的是matplotlib这个可视化python包。此外在学习的过程中,还要注意python2.x和python3.x在一些语法结构上的区别。 一、TensorFlow中可用的操作...

2018-11-25 21:45:55 532

原创 Django中F查询及Q查询应用

当一般的查询语句已经无法满足我们的需求时,Django为我们提供了F和Q复杂查询语句。假设场景一:老板说对数据库中所有的商品,在原价格的基础上涨价10元,你该怎么做?场景二:我要查询一个名字叫xxx,年龄是18岁,或者名字是yyy,年龄是是19岁的人,你该怎么写你的ORM语句一、F查询 from django.db.models import Ffrom app01.models ...

2018-11-25 19:47:24 503

原创 vue+django跨域问题解决方案(前后端两种方案)

1.Vue前端设置代理(方案一)我们在使用vue-cli启动项目的时候npm run dev便可以启动我们的项目了,通常我们的请求地址是以localhost:8080来请求接口数据的,localhost是没有办法设置cookie的。 我们可以在vue-cli配置文件里面设置一个代理,跨域的方法有很多,通常需要后台来进行配置。我们可以直接通过node.js代理服务器来实现跨域请求。...

2018-11-25 19:36:38 14871

原创 DRF中接口数据序列化及分页、过滤、搜索、排序的快速实现

       在学习了一段时间DRF后,明显感受到了在Web API搭建的过程中,DRF比Django灵活和迅速很多,DRF中提供了很多强大视图和API,本篇通过一个商品页的小案例记录一下通过试用各种视图及filter之后总结出的一套最简化代码。       在这套代码中,采用了serializer和filter文件与view分离的形式,但都属于一个app文件夹:1.serialize...

2018-11-24 20:19:50 889

原创 Ubuntu18.04下安装机器学习相关Python第三方库numpy,scipy,pandas,matplotlib

本文主要讲述在ubuntu18.04下是如何安装numpy,scipy,pandas,matplotlib的一、numpy       NumPy(Numeric Python)是用Python进行科学计算的基本软件包。 NumPy是Python编程语言的扩展,增加了对大型多维数组和矩阵的支持,以及一个大型的高级数学函数库来操作这些数组。NumPy提供了许多高级的数值编程工具,如:矩阵数据...

2018-11-24 14:39:32 2317

原创 TensorFlow游乐园介绍及其神经网络训练过程

       TensorFlow游乐场是一个通过网页浏览器就可以训练简单神经网络。并实现了可视化训练过程的工具。游乐场地址为http://playground.tensorflow.org/一、TensorFlow游乐园参数介绍             打开游乐园可以看到有很多的默认参数:      首先我们来解读一下顶部的一些参数:       Epoch ---&...

2018-11-24 13:21:10 273

原创 TensorBoard启动及使用概要

       在复杂的问题中,网络往往都是很复杂的。为了方便调试参数以及调整网络结构,我们需要将计算图可视化出来,以便能够更好的进行下一步的决策。Tensorflow提供了一个TensorBoard工具,可以满足上面的需求。       TensorBoard是一个可视化工具,能够有效地展示Tensorflow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。可以查看...

2018-11-24 12:52:18 147

原创 TensorFlow中什么是Tensor?

一、Tensor概念Tensor意思为张量,张量是什么?张量具有维度,或者可有称作为他的秩:Rank/Order我们以数组为对比,展示张量维度的概念: 在上图中,当在零维的时候,称为标量;当在一维的时候,就是我们经常提的向量;当在二维的时候,就是我们经常提的矩阵;即Matrix在多维的时候,就可以称作n维的张量。张量的概念是相对与标量,向量,矩阵这一系类概念的拓展...

2018-11-22 10:56:58 338

原创 TensorFlow编程模式及基础结构

一、编程模式在程序编写中,有两种主流的编程模式:1.命令式编程——代表框架:Torch2.符号式编程——代表框架:TensorFlow命令式编程,容易理解,命令语句基本没有优化如C,Java,C++,Python,编程方式如下图所示:符号式编程,涉及较多的嵌入和优化,运行速度有同比提升,编程方式如下图所示:在TensorFlow中编程如下: 二、Tens...

2018-11-21 13:46:15 61

原创 Django中通过脚本的方式将json数据写入数据库

      这里记录一下django中通过脚本的方式写入json数据的一些技巧。      通过脚本不仅可以将已有的json数据写入数据库,而且可以批量地模拟一些后台数据,方便进行页面的展示。      我们以电商项目中,商品类表,商品信息表两个表的数据导入为例进行分析。      在django中建了一个db_tools的文件夹,将json数据存放在data文件夹中,import...

2018-11-15 16:38:22 2117

原创 谷歌浏览器jsonView下载及安装

      jsonView是一款针对谷歌浏览器的插件,他可以实现对json数据的可视化解析。      例如在测试一些后端API的时候,经常会返回一串json数据,在浏览器中会是这个样子:      我们通过下面的步骤,下载和安装jsonView插件:      1、打开 https://github.com ;      2、搜索 jsonView 链接:https://g...

2018-11-15 14:37:26 1015

原创 浅谈前后端分离及RESTful API

一、综述       前端、后端这两个名词无数次出现在专业应用当中。从最开始不懂得网站上的内容从何而来,到现在经手几个项目后对前后端和互联网有了专业上的粗浅认知,所学越多,需学越多。当专业课上还在讲解着基于C#的ASP.NET开发中,如何拖动Button按钮,如何“快速”构建出一个所谓的前端,如何点击进入相应的后端语句时,前后端分离技术早已横行于世。顾名思义,前后端分离,就是前端代码和后端代码...

2018-11-14 19:56:55 14137 1

端到端的机器学习案例文档|2-端到端机器学习案例.pdf

构造一个端对端的房地产案例描述。主要分为以下几个步骤:1.观察大局,2.获得数据,3.从数据可视化中获得洞见,4.机器学习算法的数据准备,5.选择和训练模型,6.微调模型,7.展示解决方案,8.启动、监控和维护系统

2020-10-28

空空如也

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

TA关注的人 TA的粉丝

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