
Python
wangbowj123
炼丹中。
展开
-
深度学习中学习率的更新策略(MNIST实践)
引入随机梯度下降(SGD)算法是现如今使用较为广泛的优化算法(此处的SGD指的是小批量梯度下降)。具体执行方法是不断迭代直到满足停止准则,在每次的迭代中取小批量训练集,计算损失函数对于权重参数的梯度,并以一定学习率执行权重更新。《深度学习》一书中指出学习率(ε\varepsilonε)是SGD算法中的关键参数。并且在我之前所编写的深度学习程序中,学习率一直是一个固定的变量,但通过阅读才发现自己...原创 2019-07-20 23:09:57 · 3332 阅读 · 0 评论 -
python3利用正则表达式爬取内涵段子
似乎正则在爬虫中用的不是很广泛,但是也是基本功需要我们去掌握。 先将内涵段子网页爬取下来,之后利用正则进行匹配,匹配完成后将匹配的段子写入文本文档内。代码如下:# -*- coding:utf-8 -*-from urllib import request as urllib2import re# 利用正则表达式爬取内涵段子url = r'http://www.neihanpa.原创 2018-01-24 13:21:29 · 1205 阅读 · 0 评论 -
python3通过CookieJar与urllib模拟登陆人人网
人人网有一个登陆用的接口http://www.renren.com/PLogin.do,该接口仅需要提交一个包含用户名和密码post表单再利用cookie的相关处理方法便可以模拟登陆。(不知道为什么还有这种接口存在) 具体代码、实现流程如下:# -*- coding:utf-8 -*-from urllib import request as urllib2from urllib imp原创 2018-01-23 16:50:22 · 1679 阅读 · 1 评论 -
numpy基本函数与操作——一篇就够了!
对numpy基本函数操作进行了整理,掌握这些便可以算是入了个门,基本全部敲一遍就掌握差不多了!开发环境为jupyter notebook 基本是一个输入一个输出 需要源码的可以去我的github下载import numpy as np# 读文件的操作 分隔符为逗号 类型是strworld_alcohol = np.genfromtxt('world_alcohol.txt', de原创 2018-01-30 21:58:31 · 1606 阅读 · 0 评论 -
jupyter notebook 有哪些快捷键?(转载防忘)
命令模式 (按键 Esc 开启)Enter : 转入编辑模式Shift-Enter : 运行本单元,选中下个单元Ctrl-Enter : 运行本单元Alt-Enter : 运行本单元,在其下插入新单元Y : 单元转入代码状态M :单元转入markdown状态R : 单元转入raw状态1 : 设定 1 级标题2 : 设定 2 级标题3 : 设定 3 级标题转载 2018-01-30 21:52:12 · 284 阅读 · 0 评论 -
python3爬取豆瓣电影Ajax(获取动态内容)
利用python3中的urllib模块对豆瓣电影的“喜剧片”进行爬取。因为是动态页面,我们关注点应在数据来源上,我们知道所有Ajax数据来源都是json,通过Fiddler抓包工具,我们可以获取相应json数据,提取出相应url,以及post请求的QueryString,之后便可以进行代码的编写。 代码如下:# -*- coding:utf-8 -*-from urllib impor原创 2018-01-22 21:11:42 · 2041 阅读 · 0 评论 -
2017年StackOverflow上最好的20个Python问题
1、Python的 .. (点号 点号) 是什么语法?答案地址:https://stackoverflow.com/questions/43487811/what-is-python-dot-dot-notation-syntax2、为什么在Python3中 x**4.0 比 x**4运行的快?答案地址:https://stackoverflow.com/questions/42355转载 2018-01-14 17:41:53 · 964 阅读 · 0 评论 -
python3爬取指定百度贴吧页面并保存成本地文档(批量爬取贴吧页面数据)
首先我们创建一个python文件, tieba.py,我们要完成的是,输入指定百度贴吧名字与指定页面范围之后爬取页面html代码,我们首先观察贴吧url的规律,比如:百度贴吧LOL吧第一页:http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=0第二页: http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=50第三页:原创 2018-01-21 22:31:55 · 2056 阅读 · 0 评论 -
python3爬虫初步——http请求头部的构造
利用python3写爬虫,因为python3已经没有了urllib2,仅有urllib,区别就在于urllib2相当于urllib.request,调用urllib2的方法时可以通过urllib.request调用。 爬取百度首页时,收集到消息之后要对信息进行解码,发现编码方式为gb2312,运用decode方法进行解码,得到首页源代码。 关于http请求头信息,推荐使用浏览器插件Switch原创 2018-01-21 15:06:43 · 19823 阅读 · 5 评论 -
Python高级之修饰器
装饰器是程序开发中经常会⽤到的⼀个功能,⽤好了装饰器,开发效率如⻁ 添翼,所以这也是Python⾯试中必问的问题。 写代码要遵循 开放封闭 原则,虽然在这个原则是⽤的⾯向对象开发,但是也 适⽤于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改, 但可以被扩展,即: 封闭:已实现的功能代码块 开放:对扩展开发现有如下代码块:# coding = 'utf-8'def f原创 2017-12-25 17:46:43 · 750 阅读 · 0 评论 -
回溯法:最小重量机器设计问题(python解决)
问题描述: 最小重量机器设计问题:设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设 w[i][j] 是从供应商j处购得的部件 i 的重量, c[i][j]是相应的价格。试设计一个算法,给出总价格不超过 p 的最小重量机器设计。 利用回溯法求解问题,首先可以为该题的二维数组w、c赋初值,不妨令n=3,m=2、p=60。构造回溯法中的解空间树,大概如下: 根据回溯法的要求原创 2017-11-18 15:37:00 · 3491 阅读 · 0 评论 -
在windows下使用python3连接sqlserver
利用python连接sqlserver数据库,一开始总是出现错误。错误如下:Traceback (most recent call last): File "pymssql.pyx", line 635, in pymssql.connect (pymssql.c:10734) File "_mssql.pyx", line 1902, in _mssql.connect (_mssql.c原创 2017-11-12 17:28:53 · 31514 阅读 · 4 评论 -
python——三道贪心算法例题
1.找零钱问题:假设只有 1 分、 2 分、五分、 1 角、二角、 五角、 1元的硬币。在超市结账 时,如果 需要找零钱, 收银员希望将最少的硬币数找给顾客。那么,给定 需要找的零钱数目,如何求得最少的硬币数呢?2.求最大子数组之和问题:给定一个整数数组(数组元素有负有正),求其连续子数组之和的最大值。3.汽车加油站问题原创 2017-10-24 21:44:39 · 15733 阅读 · 10 评论 -
python3多线程爬虫爬取某美女图片网站的指定页图片资源,你懂的
Queue(队列对象)queue是python3中的标准库,可以直接import queue引用;队列是线程间最常用的交换数据的形式。python下多线程的思考对于资源,加锁是个重要的环节。因为python原生的list,dict等,都是not thread safe的。而queue,是线程安全的,因此在满足使用条件下,建议使用队列1. 初始化: class Queue.Queue原创 2018-01-26 16:22:29 · 12329 阅读 · 0 评论 -
python3利用xpath爬取糗事百科数据并保存为json
利用xpath爬取糗事百科的数据,关键在于对xpath的使用,可以用浏览器插件对xpath做相应的对照。 我的处理方法是提取出来相对比较有“概括性”的父节点,然后通过父节点对爬取的页面进行解析得到子节点集,之后再利用for循环遍历节点集,从而再利用子节点提取出用户名、用户发表的段子、点赞数、评论数、帖子包含的图片。最后将其存储在字典里写入json文件。# -*- coding:utf-8 -原创 2018-01-25 20:10:23 · 1617 阅读 · 0 评论 -
numpy与tensorflow中的随机函数总结
笔者感觉numpy、tensorflow中的随机函数有些杂,用的时候总是不知道用哪一个,所以在本篇博客中对其进行一个简单的总结。numpy的随机函数我们可以利用numpy随机(random)模块生成我们想要的随机序列或进行一系列随机操作。常用api如下:np.random.randint(a, b)该函数用于生成一个指定范围 [a,b] 的整数。np.random.randn(d0,d...原创 2019-07-19 21:45:52 · 2700 阅读 · 0 评论 -
CNN(卷积神经网络)实现手写数字识别并与django集成
任务设计一个卷积神经网络来实现对MNIST手写数字集的识别任务。为了增加模型复杂度并进一步练习tensorflow的使用方法,所以模型设计的稍微复杂一些。网路结构总共包括五个层级,包括四个隐藏单元、一个输出单元。 层级结构如下图所示包、数据集载入import tensorflow as tfimport numpy as npfrom tensorflow.examples.tuto...原创 2019-07-16 16:13:01 · 6334 阅读 · 2 评论 -
一文讲懂普通线性回归与贝叶斯线性回归的区别
将均方误差应用到线性回归问题中首先我们先回顾频率派的解决方法,即常规解法——利用最小二乘法解决问题。损失函数采用均方误差函数。关于模型容量问题:在《深度学习》中专门指出,模型的容量也是一个需要用户指定的超参数,即拟合的多项式次数。此处为了简化操作,暂定为一次多项式。解决代码如下:import numpy as npx = np.random.randn(10) + 5# 初始参数k...原创 2019-07-12 01:22:19 · 3679 阅读 · 0 评论 -
深度学习之手写数字识别——用bp神经网络实现
任务设计一个bp神经网络是实现对MNIST手写数字集的识别任务。网路结构包含一个输入层、一个隐层和一个输出层。 其实总共只有两个层级结构。包、数据集载入我们使用tensorflow来简化我们的操作。import tensorflow as tfimport numpy as npfrom tensorflow.examples.tutorials.mnist import input...原创 2019-07-16 00:17:21 · 8707 阅读 · 0 评论 -
12行实现一个简易神经网络
准备工作现实现一个具有三层的最简单的神经网络,激活函数采用sigmod函数。整体结构如下所示:x是输入的样本值。设定为5*3的矩阵,即代表5个样本值,每个样本有3个特征值。y是标签,为5*1的矩阵代表每一个样本的标签。且取值范围为0或1。即完成一个简单的分类问题。w0、w1为中间的权重参数。L0、L1、L2表示每一层的计算结果。L2即是最终与标签比对的结果首先是数据的初始化:x...原创 2019-03-27 17:28:00 · 859 阅读 · 1 评论 -
线性回归的讨论
线性回归的概念给定一个数据集D={(x1,y1),(x2,y2),(x3,y3)…},所谓线性回归就是模拟出一个线性模型f(X)=k∗X+bf(X) = k * X + bf(X)=k∗X+b,使得对所有的x∈\in∈D得到 f(X) ≈\approx≈ y ∈\in∈ D,即尽可能准确的预测真实的y值。问题主要集中在我们该如何得到k、b的值呢?关键在于如何度量f(X)与真实的y之间的...原创 2019-01-03 15:45:39 · 393 阅读 · 0 评论 -
梯度下降求解逻辑回归2(代码编写以及三种梯度下降对比)
*上一篇是理论知识、背景介绍以及大体的实现方向,这一篇是具体代码实现代码编写我们的功能模块:写出sigmoid函数,返回被录取的概率,即映射到概率g(z)=11+e−zg(z)=11+e−zg(z) = \frac{1}{1+e^{-z}} 写出model函数,返回预测结果值,即X(样本值)与theta的矩阵相乘结果(θ0θ1θ2)×⎛⎝⎜1x1x2...原创 2018-02-18 21:53:33 · 5023 阅读 · 3 评论 -
机器学习实战——梯度下降求解逻辑回归(1理论基础)
问题的提出现要实现一个简单的线性回归: 我们将建立一个逻辑回归模型来预测一个学生是否被大学录取。假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会。你有以前的申请人的历史数据,你可以用它作为逻辑回归的训练集。对于每一个培训例子,你有两个考试的申请人的分数和录取决定。为了做到这一点,我们将建立一个分类模型,根据考试成绩估计入学概率。即要求我们通过一些数据集...原创 2018-02-17 17:33:23 · 1721 阅读 · 0 评论 -
使用seaborn绘制漂亮的热度图
还是使用jupyter notebook作为开发环境,首先引入所必须的包以及对环境进行相应设置。import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline# 调用魔法方法 使得...原创 2018-02-14 15:30:56 · 39886 阅读 · 0 评论 -
seaborn直方图、散点图与回归分析图的绘制
学习了seaborn的基本风格操作设置之后我们便操作seaborn学习直方图、散点图的绘制方法,以及对数据进行回归分析的方法(本文使用jupyter notebook为开发环境)。直方图的绘制 首先我们导入必须的包以及matplotlib的魔法方法,使得我们绘制的图象能直接显示;并为随机数设置种子,使得每次执行相同方法产生相同的随机数。import numpy as npimp...原创 2018-02-14 15:11:54 · 28649 阅读 · 0 评论 -
seaborn基本操作——风格设置(以绘制正弦函数为例)
在学习了matplotlib之后便紧跟着开始seaborn的学习,seaborn是对matplotlib的进一步封装,令我们的绘图操作进一步简化,使用seaborn我们便可以简单的绘制出风格迥异的图例,是我们数据展示的利器。 我们从seaborn的风格转换开始入门学习,以绘制正弦函数为例。 首先在正常的matplotlib中我们绘制一组正弦函数的曲线,代码如下: i...原创 2018-02-11 18:33:25 · 3274 阅读 · 0 评论 -
scrapy实战——利用CrawlSpider爬取腾讯社招全部岗位信息(进行有一定深度的爬取)
经过scrapy的简单学习,我们实现这样一个爬虫:爬取腾讯社招的全部岗位信息,将粗略的大致信息保存在tencent.json文件中,将岗位的进一步具体信息(职责、要求)保存在positiondescribe.json文件中。 即,我们需要两个item进行页面信息的保存,同时要继承CrawlSpider对页面链接进行相应提取。 项目目录如下:(创建名为TencntSpider的项目)Tenc原创 2018-01-30 16:29:53 · 2363 阅读 · 2 评论 -
解决python3.6下scrapy中xpath.extract()匹配出来的内容转成json与.csv文件没有编码(unicode)的问题
初学scrapy,利用xpath对网页结构进行匹配,写的parse函数如下: def parse(self, response): teacherList = response.xpath('//div[@class="li_txt"]') teacherItem = [] for node in teacherList:原创 2018-01-27 13:09:13 · 2303 阅读 · 1 评论 -
python中去掉字符串中的\xa0、\t、\n
今天帮女朋友从网络上收集一些信息,但是发现提取出的信息中有“\xa0”,并且无法去掉,查阅了相关资料,后发现该字符表示空格。\xa0 是不间断空白符 我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。 而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space原创 2017-09-22 12:21:52 · 99256 阅读 · 14 评论 -
python正则表达式——分组的使用
在正则表达式里可以利用分组进行匹配,举例如下: 1.利用分组匹配邮箱地址:>>> s = "wangbo@163.com">>> p = r"(\w{4,20})@(163|qq|gmail|outlook)\.(com)">>> result = re.match(p, s)>>> result.group()'wangbo@163.com'>>> result.group(1)'w原创 2017-09-12 22:35:59 · 2374 阅读 · 0 评论 -
Python高级之——浅拷贝、深拷贝(deepcopy、copy的区别)
在python里有深浅拷贝之说,何为浅拷贝? 看代码:>>> a = [11,22,33]>>> b = a>>> id(a)25084152>>> id(b)25084152>>> b.append(44)>>> a[11, 22, 33, 44]>>> b[11, 22, 33, 44]这便是最简单的浅拷贝,可以发现a、b地址相同,指向同一片内存(拷贝的是引用),同时改变b原创 2017-08-14 16:52:14 · 2141 阅读 · 0 评论 -
Python中的生成器——yield
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前转载 2017-08-06 20:38:21 · 410 阅读 · 0 评论 -
Python基础(7)——名片管理系统(实现了数据简单的存储、修改、删除、查看等)
进行了一些Python基础知识的学习后,将这些知识进行综合,实现了名片管理小系统,可以进行数据的增删改查。主要思路是将名片(信息)存进字典里,再将字典存入列表里,方便进行增删改查。代码如下:原创 2017-08-04 17:28:11 · 1930 阅读 · 0 评论 -
Python基础(5)——函数的执行,调用,嵌套
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数关键词:封装、独立功能、代码块、模块、调用 Python提供了许多内建函数,比如print()。但我们也可以自己创建函数,这被叫做用户自定义函数。在学习过程中老师提出一个问题input()函数是否有返回值,答案自然是肯定的,input()必然有返回值,在Pyt原创 2017-08-04 17:08:20 · 1477 阅读 · 0 评论 -
Python基础(3)——北京市地铁买票问题(思维练习题)
Python基础练习,进行循环与条件判断的嵌套,有一道逻辑练习题如下:根据以下信息提示,请帮小明计算,他每月乘坐地铁支出的总费用提示信息:北京公交地铁新票价确定据北京市发改委网站消息称,北京市将从2015年12月28起实施公共交通新票价:地铁6公里(含)内3元,公交车10公里(含)内2元,使用市政交通一卡通刷卡乘公交车普通卡5折,学生卡2.5折。 具体实施方案如下原创 2017-08-01 23:02:11 · 5983 阅读 · 1 评论 -
Python基础(4)——字符串、列表、元组、字典
Python:字符串、列表、元祖、字典原创 2017-08-02 23:15:17 · 784 阅读 · 0 评论 -
关于递归的总结——汉诺塔、素因数的求解(Python实现)
在Python函数的学习中,再次对函数的递归感到了迷惑,都说递归逻辑清晰,应用简单,但是在应用中却总有些不理解的地方,甚至感到很疑惑,在此进行总结,希望能理解。首先看一下阶乘的递归求法:def getNum(num): if num > 1: result = num * getNum(num-1) else: result = 1 return resulta = getNu原创 2017-08-09 21:02:37 · 725 阅读 · 0 评论 -
Python易错点整理——for和else的搭配使用、global的使用
今天编程时遇到了一些Python中易犯的错误,总结如下:一、for和else的搭配使用:在Python中for循环可以和else搭配使用,但是有些细节地方容易出错,比如:for i in xrange(1,10): if i == 1: print("Yes")else: print("No")你可能打算希望程序最终输出Yes,但是在这个程序段中最终输出的是Yes和N原创 2017-08-05 15:49:27 · 5077 阅读 · 0 评论 -
关于Python中的引用传值
学习了Python后,感觉到对Python里的引用传值有些疑惑,搜集了一些资料,同时编了一些实例,在此对引用传值解惑一下,分享给大家。在Python里,一切事物皆为对象,并且规定参数的传递都是对象的引用。python参数传递都是“传对象引用”方式。实际上相当于c++中传值和传引用的结合。首先我们可以看一下c++里传值的方法:#include#includeusing nam原创 2017-08-09 09:27:55 · 808 阅读 · 0 评论 -
Python基础(2)——Python选择、循环结构
Python的循环结构: •while循环一般通过数值是否满足来确定循环的条件•for循环一般是对能保存多个数据的变量,进行便利•if、while、for等其他语句可以随意组合,这样往往就完成了复杂的功能郑老 2017/8/1 16:32:53◦continue的作用:用来结束本次循环,紧接着执行下一次的循环•break/continue只能用在循环中,除此以外不能原创 2017-08-01 16:39:09 · 790 阅读 · 0 评论