python基础笔记
蓝一潇、薛定谔的猫
东北大学在读 深度学习爱好者 国内某nlp实验室实习生
展开
-
matplotlib画可定制格式的折线图
最近又被导师催着改论文,当时所有的图都画得太丑了,要重新画。每次画图都得重新学习一遍matplotlib,不如把代码直接记下来,每次都可以直接使用(这是一个用于画深度学习epoch-acc图像的函数,接受四个参数,前两个参数是两个长度相同的list,就是训练的历史数据,第三个参数是图像的标题,第四个参数是y轴的开始位置,也就是acc的开始位置),上面有注释,可以直接复制到自己的实验里面,传入相应参数即可画图,也可以根据注释改成适用于其他任务的折线图下面是一个画条形图的函数:def plot_good_d原创 2021-05-30 23:48:45 · 458 阅读 · 3 评论 -
win10+python+Flask设置SSL证书,使用https服务
本人也是看了很多博客,才学会的。Flask使用SSL直接使用ssl:from flask import *app = Flask(__name__)@app.route('/')def index(): return '<h1>hello</h1>'if __name__ == '__main__': app.run(port=7000, ssl_context='adhoc')这样,就可以开启一个https服务:控制台输出如下:* S原创 2021-04-13 23:27:06 · 3846 阅读 · 0 评论 -
Python2实现KMP算法源码
使用python实现KMP算法源码如下,第一个参数是文本,第二个参数是要匹配的字符串,返回该字符串在文本的位置,若找不到返回-1:def kmp(string, token): def find_next(token): __next = dict(enumerate(token)) for i in range(len(token)): # print(i, token[i], ':'), n = 0原创 2021-01-09 03:49:24 · 200 阅读 · 0 评论 -
Python 使用记事本、sublime、vim时报错:IndentationError: expected an indented block
这个错误通常在jetbrain的编译器上不会出现,应为它已经帮你处理好了缩进问题。在其他的文本编辑器上遇到时,解决方法是把所有的缩进全部换成空格。(不要有tab即可)在sublime text上,选中某一行,他会显示前面空格的类型,如果高亮的空格是直线,就是tab,是一个一个点就是空格,切记。...原创 2020-08-19 00:23:07 · 630 阅读 · 0 评论 -
Python做控制变量实验的工具
在控制变量实验中,我们通常需要固定住一个或几个参数,并遍历一个区间将参数代入实验中。假设一个叫func的函数有三个参数,第一个参数固定,第二、三个参数是需要控制变量的,那么在参数离散取值的情况下,罗列出第二、第三个参数所有的情况,就需要用排列组合将不同参数代入func进而得到实验结果。本人实现了这样一个类,现在开源给大家使用。希望对大家有帮助# coding:utf8import timeimport copyimport pandas as pdclass Experimenter:原创 2020-08-13 21:39:48 · 852 阅读 · 0 评论 -
用Sklearn的KMeans聚类,输出标签全是0的解决方案
大家在使用Kmeans聚类时,可能碰到fit_predict后输出的标签全部为0。解决方法是增大n_clusters的数量,比如100,这样就可以拉大簇与簇之间的精细程度,就可以得到细分的类别了。原创 2020-08-09 12:52:35 · 1491 阅读 · 0 评论 -
Python实现多线程管理框架(每天定时启动、关闭、每隔一段时间自动运行)
业务需求,需要让python自动化工作,于是本人开发了一个框架用来管理多线程任务,供大家使用~# 以下为框架源码# coding:utf8# author: Lanyixiao_Eathoubluimport threadingimport timeclass HTask: def __init__(self): pass def start(self): try: self.run() except原创 2020-08-01 17:33:29 · 1388 阅读 · 2 评论 -
Python 格式化输出时间
总是忘记,记录一下:print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))打印结果:2020-08-01 07:28:12格式化字符串可以改成自己喜欢的样子~原创 2020-08-01 15:32:07 · 2332 阅读 · 0 评论 -
使用Pythonista+StaSh进行Git版本控制
ipad上,安装了StaSh的pythonista真的是神器,虽然花了68,但感觉还是很值的。在pythonista的stash中使用git,方式和linux端稍为有所不同。下面几记录一下:运行launch_stash.py,打开终端界面;首先,将仓库拉取至本地。git clone <http url>这里的仓库需要提前在网页端创建好。最好是public,private会遇到一些问题,目前暂时没法解决;然后,添加文件:git add <文件1> <文件2>原创 2020-07-27 20:29:58 · 788 阅读 · 0 评论 -
Python 发布自己开发的库至Pypi
很多人都希望能够把自己的库开源到pypi,也方便自己之后使用,方法很简单,如下:首先,你的自己写的库允许别人去调用里面的类、函数,这些东西被定义在一个文件,假设名为test.py中。那么,现在发布一个包,假设名字叫pytest,那么现在进行如下步骤:随便选择一个目录作为根目录新建一个叫pytest的文件夹(你的开源库叫什么,这个就叫什么)在pytest下,创建__init__.py文件,文件中添加一行:name="package-self"就可以了在pytest文件夹中,把预先写好的原创 2020-07-01 19:57:53 · 560 阅读 · 1 评论 -
python数字电路仿真库:ClockworkOrange 使用说明
开发了一个数字电路仿真库,可以连接元件可以仿真得到时序图。当然,该库目前还不是很完善,但是已经可以满足大部分的数字电路仿真的需求。该库由四个核心对象:与非门电路:接受n个输入,一个输出 NAND元件:可由若干个门电路组成 Component电路:电路上可以放置元件和与非门,可以理解为一个面包板 Circuit测试器:用于提供时钟信号、输入、绘制输出图 Tester使用方法:首先,安装ClockworkOrange库:pip install ClockworkOrange然后,在程序中原创 2020-07-01 00:21:52 · 2336 阅读 · 5 评论 -
记录Python3开发轻量级区块链的思路
由于业务需求,使用需要用开发一个轻量级区块链。出于一些原因代码不能公开,因此谈谈设计的思路。先说服务端首先,选用flask作为服务框架。注意app.run()不要放在主线程,否则会阻塞,无法进行进一步...原创 2020-06-20 15:52:39 · 618 阅读 · 0 评论 -
python3用pyinstaller对单文件py代码进行打包
记录一下,十分简单。pyinstaller -F -w test.py即可。在生成的dist文件夹下,即可看到编译好的exe文件其中,F参数为打包成一个文件,-w为只显示窗口,不显示控制台,把-w换成-c会在窗口显示的同时显示控制台。-icon=test.ico 或-i test.ico 可以为生成好的程序添加一个图标,需要注意图标必须是ico格式,而不能是png jpg改后缀得到的,否则会报错。...原创 2020-06-20 02:57:54 · 867 阅读 · 0 评论 -
python2转python3代码的一些总结01
当一个python2的代码要在python3环境下运行时,通常会十分痛苦,有一些既定的报错先记录一下应对方案。把reload(sys)以及setdefaultencoding去掉在hashlib中,原本的hashlib.md5(str(random.random())).hexdigest()无效,需要改成hashlib.md5(bytes(str(random.random()), encoding=“utf8”))不兼容的地方肯定不止这些,以后遇到再继续记录~...原创 2020-06-20 02:47:36 · 137 阅读 · 0 评论 -
解决 SQLite报错:OperationalError: row value misused
python操作sqlite时,写了这样一条语句:("""SELECT (content, describe, id) FROM DAILYTASK WHERE needcopy=? AND finish=? AND uid=?""", (1, 0, uid, ))报错:OperationalError: row value misused这个错误的原因是SELECT后面不小心加了括号,删...原创 2020-04-27 01:52:16 · 4916 阅读 · 0 评论 -
Python实现算术编码的源码
在通信领域经常会使用算术编码对信息进行编码,下面提供一个给python使用的对给定序列进行算术编码的源代码:使用方法一看就会了# coding:utf8class ArtimeticCoding(object): def __init__(self, symbol, P, _range=1., _low=0.): self.__symbol = [str(s) for ...原创 2020-04-15 16:20:44 · 2444 阅读 · 0 评论 -
Pyhton3 B站下载指定up主所有视频并归类存放(源码)
B站视频下载器给大家分享两个python3脚本,第一个脚本输入up主的id就可以下载他/她的全部视频(包括多分p视频)且分类存放;第二个脚本输入av/bv号就可以直接下载指定视频(同样包括多分p视频),这两个脚本都是基于you_get实现的。都是复制了就可以用的,非常方便。源码都已经上传至github,之后修复bug或有新的功能都会及时更新(非常欢迎star或fork):https://git...原创 2020-04-02 03:13:04 · 3112 阅读 · 0 评论 -
Python用于按用户来下载微博图片的爬虫
在浏览新浪微博时,大家总是会觉得有一些博主的图片很好,想全部下下来,但人工操作非常麻烦,于是我写了一个输入用户id就可以爬取该用户所有图片的爬虫,供大家使用。源码:# coding:utf8import requestsimport timeimport jsonimport osimport sysimport refrom tqdm import tqdmreload(sy...原创 2020-03-30 20:40:31 · 1453 阅读 · 1 评论 -
python3字符编码转汉字的解决方案记录1
大家使用python3爬虫时,总是遇到字符编码问题。如:\xb7\xaf\xe5\xb8\xa6\xe9\xa3\x8e这样的字符,令人十分苦恼。下面我总结了几种解决方案:爬到的数据通常是bytes类型,如requests.get的content属性。这时候,我们使用str(content, ‘utf8’)就可以把\xb7\xaf\xe5\xb8\xa6\xe9\xa3\x8e这样的内容转...原创 2020-03-27 15:35:44 · 1565 阅读 · 0 评论 -
Python的梯度下降算法以及源码
在数学建模、神经网络中,不少地方都会用到梯度下降。如果要用的时候不会写就太尴尬了。因此在这里我共享自己写的梯度下降算法的源代码。梯度下降算法的核心公式是:w’ = w - ∂L/∂wL是loss functionw是权重,也可以写成wi,表示权重矩阵的第i个元素∂L/∂w是损失函数对w求偏导w‘即为更新后的权重下面我们考虑一个简单的加权求和函数:w1x1+w2x2+…+wnxn=∑...原创 2019-12-22 11:49:16 · 602 阅读 · 1 评论 -
Python2实现简易图灵机(附源码)
好久没更新了,最近有人委托我做了一个单纸带 图灵机的模型,我就用python写了一个简易的。写完之后想了一想,其实这东西本质上就是一个仿汇编指令语法的程序编译器。虽然是一个比较精简的实现,但我个人认为还是比较有参考价值的,因此我把代码开源给大家。完整代码在我的github上:https://github.com/Eathoublu/EathouTuringMachine我设计的是一个单纸带图灵...原创 2019-12-21 19:14:25 · 2164 阅读 · 0 评论 -
使用GPU跑keras程序报错:OMP: Error #15: Initializing libiomp5.so, but found libiomp5.so already initialized.
使用GPU跑keras程序报错:OMP: Error #15: Initializing libiomp5.so, but found libiomp5.so already initialized.昨天在使用GPU服务器跑keras程序的时候提示这个错误,并在报完这个错误之后就直接吐核了。我用的是keras库,tensorflow backend。今天找到原因:tensorflow版本不正确。...原创 2019-01-25 16:28:54 · 3011 阅读 · 0 评论 -
Linux服务器爬虫+Mysql琐碎笔记02
报错:pymysql.err.InterfaceError: (0, ‘’)爬虫爬到的数据放进mysql数据库,及个爬虫程序运行了几个小时之后,突然同时连接断开,并出现上面这个错误,一开始以为是SQL语句格式不对,但仔细检查完全正确,目测就是mysql的bug。。没有用sqlalchemy,直接用的pymysql进行的连接,没有设置连接池什么的,自然容易有bug我认了。。我就是死心用pymys...原创 2019-01-28 23:35:56 · 193 阅读 · 0 评论 -
gensim加载word2vec模型报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid
这句话是一个很常见的错误,是在加载gensim预训练的word2vec模型时的报错,当时查资料找到加载模型应该用model = KeyedVectors.load_word2vec_format(‘model_1.w2v’)然而这个方式很开心的报错了。后尝试改成model = KeyedVectors.load(‘model_1.w2v’)就可以了。...原创 2019-01-29 14:45:03 · 6395 阅读 · 5 评论 -
Linux服务器爬虫+Mysql琐碎笔记03
报错:ERROR 1064 (42000): You have an error in your SQL syntax使用sqlalchemy连接数据库,并使用SQL语句修改数据库。。果然sqlalchemy是为对象关系映射准备的。。。而不是赤裸裸的SQL语句。试着添加一些包含奇怪符号的语句到数据库里面。。直接报错ERROR 1064 (42000): You have an error i...原创 2019-01-29 23:07:11 · 126 阅读 · 0 评论 -
Python3的unicode编码转换成中文问题
9102年,大部分人已经受尽了python2里面unicode的折磨,转向了python3。python3似乎对一切的unicode都那么的友好,当一个字符串里存在unicode的时候,只要字符串是硬编码的,就可以转换成中文打印在控制台上,如:s = ‘\u7b14\u8bb0’print(s)你得到的就是中文汉字。但是,假如你。。的这段含有‘\u’的unicode编码不是硬编码进脚...原创 2019-02-09 00:49:39 · 29472 阅读 · 9 评论 -
Keras ValueError: No data provided for "dense_1_input". Need data for each key in: ['dense_1_input']
今天使用keras分批训练model时使用model.fit_generator方法报错:ValueError: No data provided for “dense_1_input”. Need data for each key in: [‘dense_1_input’]最后通过分析keras源码,找到了解决方案:将用于产生batch的generator的返回值的格式写成一个字典,长这样:...原创 2019-02-13 17:31:05 · 5002 阅读 · 5 评论 -
解决问题:fatal python error (pygame parachute)
最近项目涉及使用linux单片机摄像头采集图片,经过学习,发现使用pygame的效率是最高的,相比于v4l2等等框架。使用ptgame.camera模块做图像采集,调用Camera.get_image()出现一个错误:**fatal python error (pygame parachute) **经过尝试,初始化Camera对象之后,调用对象的start()方法之后再get_image就成功...原创 2019-03-19 17:31:04 · 4272 阅读 · 0 评论 -
理解pygame里的Surface对象
最近在做嵌入式开发,发现有一个平时一点都不起眼甚至和嵌入式八杆子打不着的库简直是神器。它就是pygame,一个上世纪的python游戏框架。刚开始接触pygame,很多人会对Surface这个对象很迷惑。窗口是Surface对象,加载的图片、背景也是Surface对象,精灵还是Surface对象……Surface,how old are you?其实,Suface也没那么可怕,大家可以简单...原创 2019-05-27 01:09:49 · 8021 阅读 · 5 评论 -
keras 用LSTM搭建一个语言情感分类器 - keras 进阶教程
鉴于很多人最近问我LSTM的API在keras中怎么用,怎么总是报错,我觉得写一个博客,搭建一个最小化的语言情感分类模型,这样大家就能一通百通了。这个讲解会主要侧重于LSTM中的数据维度处理。这里就不谈LSTM的原理了,大家肯定没少看到过那个经典的LSTM cell结构图。那么,第一步做什么呢?首先,我们需要一个数据集,用word2vec来做word embeding(即将词转化为向量的形...原创 2019-05-27 23:06:19 · 2430 阅读 · 0 评论 -
Python2 list 深浅拷贝 一个大家疏忽了的细节
这里面有巨大的危机!在python2中,令一个新对象直接等于一个列表,如a = [1, 3, 5]b = a时,解释器仅会创建一个浅拷贝,也就是说,b和a指向同一块内存空间,无论你修改a还是修改b,都会直接影响那块内存,也就是说b.append(7)print a>>> [1, 3, 5, 7]好了,这种情况不仅存在于赋值给新对象的时候,还存在于列表作为形参传...原创 2019-06-01 15:06:32 · 3004 阅读 · 1 评论 -
Python 递归查找json中的key的值
项目很多时候需要找到一个层层嵌套的json里面某一个或者几个key的值,这时候就需要遍历整一个json来获得这些值。因此我封装了一个class,专门给大家来在一个json中递归查找需要的key的value,下面给出源码(复制到自己的项目里面引入即可) 下面有介绍用法# coding:utf8import jsonclass GetKeyValue(object): def __...原创 2019-08-19 13:54:38 · 14508 阅读 · 2 评论 -
python beautifulsoup报错问题解决:bs4.FeatureNotFound: Couldn't find a tree builder
beautifulsoup在centOS7测试环境下运行报错,bs4.FeatureNotFound: Couldn’t find a tree builder这个报错的原因是系统缺少lxml库,这个库是一个html的解释器。安装这个库:pip install lxml这个时候,很可能再报另一个错:fatal error: Python.h 没有那个文件或目录这个问题在centOS7...原创 2019-08-19 23:59:30 · 5095 阅读 · 3 评论 -
requests报错:raise ValueError('Invalid header name %r' % (header,)) ValueError: Invalid header name XX
报这个错误的原因是请求头里面包含以“:”开头的键 如’:path’这些键是http2.0需要的,但是httplib只支持http1.1,不过很容易解决。找到httplib.py这个文件,比如我的centos中,这个文件就在/usr/lib64/python2.7/httplib.py中。vi /usr/lib64/python2.7/httplib.py找到报错的行,这一行大约是10...原创 2019-08-20 00:09:08 · 5208 阅读 · 0 评论 -
一文弄懂nginx+uwsgi+flask在linux下的部署(保证靠谱)
使用nginx+uwsgi+flask部署服务器半年多了,很多东西都遗忘了,现在项目需要突然需要部署新的服务器,因此重新开始学习nginx+uwsgi+flask的部署方法。发现网上大部分关于这个的教程或博客都没把话说清楚,甚至都没操作完就草草了事。甚至有的说先打开nginx,有的说先打开uwsgi……因此,我打算写一个更加靠谱的。大家按照我的指引,可以非常轻松的完成nginx+uwsgi+f...原创 2019-08-20 21:18:38 · 2438 阅读 · 2 评论 -
python2.x json.loads 字符编码问题
ValueError: Expecting property name: line 1 column 2 (char 1)这个问题主要原因是需要转换成json的字符串中出现了单引号。替换成双引号即可。第二个原因可能是字符串中有类似u’'这样的unicode字符串,当整个对象是str的时候,json.loads()是不认里面的u的。解决方法:替换单引号为双引号将u替换成空ValueE...原创 2019-08-15 20:41:18 · 923 阅读 · 0 评论 -
Linux下redis+Python笔记2
上一篇笔记在这 https://blog.csdn.net/weixin_42744102/article/details/99682461服务端设置、配置redis项目需求是分布式爬虫,多个节点获取共享数据,用redis数据库再好不过了。首先安装redis,安装方法在上一篇笔记中。安装好之后需要配置redis,方法很简单,打开redis.conf文件,修改三个东西:密码,是否能够后台运行...原创 2019-08-17 00:17:01 · 296 阅读 · 0 评论 -
再谈mysql-server安装与pymysql连接问题
在服务端(centos7)安装mysql的方法在我很早之前博客 https://blog.csdn.net/weixin_42744102/article/details/86676124 里面就已经详细说明了。按照上面的步骤安装完成后,以终端输入mysql可以进入mysql monitor为成功标志。这时候,我们需要远程连接这个mysql服务器,服务端口默认为3306,很多人反应本地的机器...原创 2019-08-17 01:15:45 · 502 阅读 · 0 评论 -
Python3下按顺序打乱两个列表
在python3下按顺序打乱两个列表在机器学习里面需要将data的list和target的list按顺序打乱,看了其他博客里面,data = [1, 2, 3]target = [4, 5, 6]data[:], target[:] = zip(*random.shuffle(zip(data, target)))在python3下,会报错,说zip对象没有len()方法。原因是zi...原创 2019-01-24 13:11:10 · 2456 阅读 · 2 评论