![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
da_kao_la
这个作者很懒,什么都没留下…
展开
-
pylint只显示错误信息(屏蔽warning以下的警告信息)
【方法一】pylint --errors-only $FILE_NAME【方法二】pylint --disable=R,C,W $FILE_NAME其中R,C,W分别表示警告级别为refactor, convention, warning原创 2020-08-18 17:43:06 · 1520 阅读 · 0 评论 -
源码安装pytorch_scatter, pytorch_cluster
动机笔者使用清华镜像站作为pip源,直接pip install torch_scatter和pip install torch_cluster安装不成功,考虑使用源码安装。下面以安装pytorch_cluster-1.4.5为例说明源码安装过程,pytorch_scatter的源码安装方式类似。注意,安装pytorch_scatter, pytorch_cluster需要预先安装对应版本的py...原创 2020-03-24 17:45:00 · 3004 阅读 · 0 评论 -
源码编译安装python2.7替换Hadoop集群的python2.6
背景使用Hadoop streaming + python开发,集群节点的python是python2.6,语法与python2.7略有不同。而我本地和开发机的python版本都是python2.7,考虑到Hadoop streaming支持分发压缩文件到节点,因此打算自己制作一个python2.7的压缩包,上传到HDFS,之后写Hadoop streaming程序都可以使用这个python2....原创 2020-03-23 12:05:59 · 296 阅读 · 0 评论 -
Python3 sort自定义比较函数
许多语言(例如C++/Java)的sort函数/方法都支持自定义比较类/函数,Python2的list的sort方法也支持可选参数cmp,支持用户自定义比较函数,但是Python3中删除了可选参数cmp,同时也删除了内置函数cmp,只提供了可选参数key用于自定义排序。但是,有些排序需求用cmp实现较为简单直接,不容易改写成key实现,为此,Python3的functools包提供了cmp_to_...原创 2020-03-04 11:36:04 · 5027 阅读 · 0 评论 -
使用pip freeze导出Python项目依赖环境
导出导出依赖到文件requirements.txtpip freeze >requirements.txtrequirements.txt中的内容示例:docutils==0.11Jinja2==2.7.2MarkupSafe==0.19Pygments==1.6Sphinx==1.2.2导入从文件requirements.txt中安装依赖pip install -...原创 2020-03-02 16:19:26 · 2130 阅读 · 0 评论 -
记一次Python多进程调优实践(自己实现并行KNN算法)
记一次Python多进程调优实践(自己实现并行KNN算法)环境服务器硬件:16核CPU,192GB内存操作系统:Ubuntu 16.04Python版本:3.6.5numpy版本:1.14.3为什么使用多进程和共享内存工作中需要写一个knn算法,用numpy实现,数据量N过大(N ~= 3,400,000)。knn算法输入的特征矩阵有8G,knn的一个中间步骤是计算特征相似度矩阵...原创 2020-02-28 17:04:00 · 1345 阅读 · 0 评论 -
【问题记录】pip install遇到"No space left on device"
写在前面:这篇博文是本人解决问题的一个记录,但产生该问题的原因可能是多重多样的,本人的解决方案未必适用于所有问题,遇到问题还是要具体问题具体分析,此博文只是提供了一种思路问题描述pip install $PACKAGE_NAME某个包时下载.whl文件下载到一般报错"No space left on device"用wget把该whl文件下载到用户home目录下pip install $W...原创 2020-02-17 12:15:15 · 18641 阅读 · 9 评论 -
用conda和pip隔离Python环境
用conda和pip隔离Python环境笔者在同一台服务器上运行多个不同的项目,多个项目依赖同一个包的不同版本,如果这些项目都使用全局环境,会发生依赖包冲突,因此有必要引入虚拟环境对不同的项目依赖进行管理。Python的virtualenv包可以用来建立虚拟环境,但是virtualenv对于虚拟环境的管理并不方便,而且不能同时使用多个Python版本。因此采用conda配合pip进行虚拟环境和包...原创 2020-01-06 00:20:17 · 4973 阅读 · 5 评论 -
ssh登录服务器使用matplotlib绘图报错RuntimeError: Invalid DISPLAY variable
ssh登录服务器使用matplotlib绘图报错RuntimeError: Invalid DISPLAY variable,原因是Linux下matplotlib.pyplot的backend是Qt5Agg, 这是一个需要GUI的backend>>> import matplotlib.pyplot as plt>>> plt.get_backend()...原创 2019-11-07 14:03:29 · 688 阅读 · 0 评论 -
《Python高级编程》学习心得——第五章 序列
《Python高级编程》学习心得——第五章 序列总览Python内置的序列类有list, tuple, deque, str, array等,分类如下:+、+=和extend()方法的区别+=实际上是调用了__iadd__方法实现的,而__iadd__又调用了extend方法,所以+=和extend一样,可以将两个序列对象相加。而+只能将两个同类的对象相加(如list + list, t...原创 2019-03-15 17:00:45 · 392 阅读 · 0 评论 -
《Python高级编程》学习心得——第六章 字典与集合
《Python高级编程》学习心得——第六章 字典与集合dict常用方法>>> a = {'a':1, 'b':2}>>> a['a']1>>> a['c']Traceback (most recent call last): File "<stdin>", line 1, in <module>原创 2019-03-15 21:21:15 · 448 阅读 · 0 评论 -
《Python高级编程》学习心得——第七章 对象引用、可变性与垃圾回收
《Python高级编程》学习心得——第七章 对象引用、可变性与垃圾回收本章的内容与我之前写过的一篇博文:python对象赋值、浅复制、深复制的区别十分相关,可以对照着看。对象可变性Python中的对象分为可变对象和不可变对象,常见类型中int, str, tuple是不可变对象,list, deque, set是可变对象。可变对象和不可变对象在实现机制上有本质差别。Python“一切皆对象...原创 2019-03-16 11:02:51 · 193 阅读 · 0 评论 -
《Python高级编程》学习心得——第九章 迭代器与生成器
《Python高级编程》学习心得——第九章 迭代器与生成器可迭代对象和迭代器实现了__iter__方法的类的实例是可迭代对象,实现了__next__方法的类的实例是迭代器对象,实现了__getitem__方法的类的实例是可切片对象(支持a[begin :end :step]操作)。下面的例子展示了常用的设计模式——迭代器模式的Python实现。from collections.abc imp...原创 2019-03-18 20:59:04 · 400 阅读 · 0 评论 -
《Python高级编程》学习心得——第十章 Python Socket编程
《Python高级编程》学习心得——第十章 Python Socket编程Socket编程原理下图展示了计算机网络五层模型的框架:计算机网络是由一系列协议构成的,其中协议是分层的,最顶层的应用层协议如HTTP,FTP,SMTP支持Web应用如网页浏览、文件传输、邮件发送;次顶层的传输层提供了端对端的连接,主要有TCP和UDP协议,其中大部分Web应用使用的是TCP协议(一直听说早期的QQ使...原创 2019-03-23 14:20:38 · 752 阅读 · 0 评论 -
《Python高级编程》学习心得——第十一章 多线程和多进程
《Python高级编程》学习心得——第十一章 多线程和多进程Python GIL:全局解释器锁准确来说,GIL (全局解释器锁) 并不是Python的语法特性而是基于C语言的Python解释器CPython的规定,Python的其他解释器例如基于Java的Jython和基于Python的PyPy是没有全局解释器锁的。但是目前CPython是Python语言的主流解释器 (我们从Python官网...原创 2019-03-28 16:08:15 · 485 阅读 · 0 评论 -
Python按行读取大文件
在工作中遇到一个需求,需要用Python脚本读取一个13G的文件,把每行的记录写入redis。由于机器的内存只有8G,所以不能一次将磁盘上的文件全部读入内存,需要一行一行读取文件。Python按行读取文件主要是使用file.readline方法或者利用file对象的迭代器性质,而file.readlines方法则是一次把所有内容从磁盘读入内存。当内存足够时,file.readlines方法显然...原创 2019-05-13 23:37:09 · 7317 阅读 · 3 评论 -
Java与Python的import关键字的差别
Java与Python的import关键字的差别Java和Python的import都有引入包中的类的功能,但是Java作为一种编译型语言,Python作为一种解释型语言,其import关键字的执行机制有很大区别。Java中的importJava中的import的作用类似于C++的using,只是为本包以外的包中的类起一个简单的别名,使得我们可以通过“类名”而非“包名.类名“的方式直接使用外...原创 2019-07-02 10:54:58 · 795 阅读 · 0 评论 -
macOS自带Python安装静态语法检查工具pylint
前言平时用vscode开发Python,使用的时候vscode老是弹出弹窗说我没有安装pylint,查了一下pylint是一个Python静态语法检查工具,可以在Python代码未经过解释器解释之前发现代码中的语法错误,类似PHP的php -l $filename步骤安装pip由于我用的是macOS自带的Python,因此没有预装pip,但是预装了easy_install,因此可以使用ea...原创 2019-10-09 19:38:12 · 963 阅读 · 0 评论 -
《Python高级编程》学习心得——第四章 深入类和对象
《Python高级编程》学习心得——第四章 深入类和对象总览鸭子类型和多态Java中多态是通过继承实现的,子类继承父类(或接口),重写父类(或接口)的方法,从而实现多态。而在Python中,一个对象从本质上来说是一个字典的封装,在该字典中,每个key是一个属性(或方法),每个value是属性的值或者方法的实现。因此,在Python中,一个对象的类型本质上是由其属性和方法决定的,比如一个类如...原创 2019-03-15 12:03:56 · 338 阅读 · 0 评论 -
《Python高级编程》学习心得——第二&三章
《Python高级编程》学习心得——第二&三章第二章、一切皆对象理论Python中一切皆对象,上图给出了根本性的阐释。具体而言,对象有id,类型,和值三大要素。不妨与Java对比分析Python“一切皆对象”的设计理念:与Java一样,Python中的类也都是继承于同一个基类。在Java中,这个基类是Object,而在Python中,这个基类是object[1]与Jav...原创 2019-03-13 21:04:34 · 842 阅读 · 0 评论 -
【转载】Python3内建函数
原文链接:Python标准库(3.x): 内建函数扫盲Built-in Functionsabs()dict()help()min()setattr()all()dir()hex()next()slice()any()divmod()id()object()sorted()ascii()enumerate()&amp;amp;amp;nbsp; &amp;amp;amp转载 2019-02-14 11:05:11 · 304 阅读 · 0 评论 -
Linux下pip使用国内源
pip默认源是国外的网址,下载速度非常慢,将pip的源替换为国内的站点可以解决该问题。一些常用的国内源清华大学:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:https://mirrors.aliyun.com/pypi/simple中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple豆...原创 2018-08-05 10:31:03 · 9011 阅读 · 0 评论 -
周志华《机器学习》Ch7. 贝叶斯分类器:朴素贝叶斯分类器的python实现
理论 记为类标,为输入,由贝叶斯公式,. 朴素贝叶斯分类器假设每个属性相互独立,. 对于所有类别来说,相同,因此朴素贝叶斯分类器对的类标判别. 令表示训练集中第类样本组成的集合,表示类别数,则类先验概率(拉普拉斯平滑)对于离散属性,令表示类标为、属性取值为的样本组成的集合,为第个属性的可能取值数,则类先验概率(拉普拉斯平滑)对于连续属性,假设服从正态分布,即,用概率密度表示...原创 2018-08-28 11:16:45 · 1802 阅读 · 0 评论 -
周志华《机器学习》Ch3. 线性模型:对数几率回归的python实现
理论 “对数几率模型”就是常说的Logistic回归,是一个经典的线性模型。考虑二分类任务,其输出标记,而线性回归模型产生的预测值是连续分布的实数,需要一个阶跃函数将连续值映射为离散二值。用一个对数几率函数近似阶跃函数,得到。从而y和1-y可以分别视为类后验概率和,简记为和。 训练时,用极大似然法估计模型参数和. 对给定的数据集,对数几率模型最大化对数似然函数. 令,...原创 2018-08-21 15:18:39 · 3725 阅读 · 0 评论 -
周志华《机器学习》Ch5. 神经网络:单隐层神经网络的python实现
理论 单隐层神经网络由于隐层的非线性激活函数(Sigmoid/tanh/ReLu),理论上可以近似任意非线性函数。单隐层神经网络输入层维度为d(等于输入向量的维度),隐层维度为q(人为指定,q的指定有一定经验性和技巧性),输出层维度为k(k为类别个数,输出k维向量用于近似k类的one-hot编码,特例是k==2时输出层维度为1)。神经网络的参数是各层神经元之间的连接权值和非输入层...原创 2018-08-25 15:01:14 · 971 阅读 · 0 评论 -
周志华《机器学习》Ch8. 集成学习:AdaBoost的python实现
概述AdaBoost(Adaptive Boosting)是一种集成学习技术,可将弱学习器提升为强学习器。大致思路是:根据初始训练集训练出一个基学习器,再根据基学习器的表现调整训练样本的分布,使得该基学习器分错的样本权重提高,再根据新的分布训练下一个学习器;如此反复直到学习器的数量达到预先指定值T.算法推导针对上面的算法流程中的“6”和“7”进行推导指数损失函数AdaB...原创 2018-09-02 15:46:03 · 2458 阅读 · 2 评论 -
周志华《机器学习》中的西瓜数据集
周志华《机器学习》一书中大量例题习题用到了“西瓜数据集3.0”和“西瓜数据集3.0a”,两个数据集的区别是“西瓜数据集3.0”有离散属性而“西瓜数据集3.0a”都是连续属性。生成这两个数据集的代码如下,运行代码即可生成python数据文件watermelon_3.0.npz和watermelon_3.0a.npz:write_dataset_watermelon3.py# -*- cod...原创 2018-09-13 17:30:13 · 9847 阅读 · 3 评论 -
周志华《机器学习》Ch9. 聚类:k-means算法的python实现
理论k-means方法是一种常用的聚类方法,其目标是最小化其中是第i个簇的中心。直接优化上式有难度,故k-means算法采用一种近似方法。简单来说,k-means算法由两个步骤循环组成:1. 计算每个sample到各个簇中心的距离,将该sample的类标赋为距离最近的簇的类标;2. 按照sample的类标重新计算各个簇中心k-means算法有两个输入参数需要用户指定,一...原创 2018-09-20 19:16:23 · 2286 阅读 · 4 评论 -
python初始化指定长度的二维list
在python中,为了实现锯齿数组的数据结构,经常需要初始化一个行数指定、列数可以每行不同的list(np.array是定长的,无法实现锯齿数组变长的需求)。我们首先来回顾一下一维list的初始化。python初始化指定长度的一维list有两种等价的方式方式一a = [None] * n方法二a = [None for i in range(n)]结果都能得到 (n =...原创 2018-11-10 14:52:49 · 8647 阅读 · 1 评论 -
Linux Anaconda换国内源
1. 在终端下输入两条命令(设置为清华tuna源)conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes2. 上述命令实际上是修改了~/.condarc文件,用vim打开后可以看到文件内容被修改...原创 2018-11-11 12:33:00 · 14233 阅读 · 0 评论 -
pandas.DataFrame.plot一个坐标系画多张图片
注意到使用pandas.DataFrame.plot作图会返回一个形如 <pandas.plotting._core.FramePlotMethods object at 0x000001DB45718518>的对象。pandas.DataFrame.plot??,调用函数的帮助:def __call__(self, x=None, y=None, kind='li...原创 2018-11-21 14:27:58 · 18771 阅读 · 3 评论 -
python爬虫自动下载网页链接
需求分析今天遇到一个简单的需求,需要下载澳大利亚电力市场NEM日前市场的发电商报价数据(http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/),页面观感是这样的:Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的pytho...原创 2018-11-20 11:14:25 · 13547 阅读 · 1 评论 -
网络不稳定时python爬虫技巧
网络不稳定时,用爬虫下载文件会报ContentTooShortError,类似下面这样:ContentTooShortError: <urlopen error retrieval incomplete: got only 1043679 out of 1050997 bytes>解决思路很简单,就是捕获异常,重新下载。但是如果重新下载的时候网络还是不稳定又遇到ContentT...原创 2018-11-20 11:28:44 · 5863 阅读 · 6 评论 -
python读取文件最后一行
处理文件时,一个常见的需求就是读取文件的最后一行。那么这个需求用python怎么实现呢?一个朴素的想法如下:with open('a.log', 'r') as fp: lines = fp.readlines() last_line = lines[-1]即使不考虑异常处理的问题,这个代码也不完美,因为如果文件很大,lines = fp.readlines()会造成很大...原创 2018-11-30 09:53:03 · 10319 阅读 · 1 评论 -
python对象赋值、浅复制、深复制的区别
python对象赋值、浅复制、深复制的区别前言与任何编程语言一样,python的对象是存放在某个内存块当中的。python的id函数的作用是求对象的内存地址。例如,a = 1id(a)1727064528或a = 'hello'id(a)2336504646432赋值python中的赋值...原创 2018-12-30 20:23:27 · 308 阅读 · 0 评论 -
Pycharm部分快捷键整理
书签F11: 在此行添加书签Ctrl + F11: 删除此行的书签Shift + F11: 显示所有书签--------------------------------------------------------------------------------修改变量名及其引用我们修改一个变量的变量名时,通常希望这个文件中所有该变量出现的地方,变量...原创 2019-01-10 16:36:41 · 1253 阅读 · 0 评论 -
Python一行代码画爱心
代码print('\n'.join([''.join([('DaKaoLaLovesPython'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))效果原创 2019-02-01 20:01:35 · 15023 阅读 · 2 评论 -
Python向excel添加内容
Python用xlrd读Excel,用xlwt写Excel,但是xlwt是一种“无则创建,有则建新”的覆盖写入方式,如果想要在原有内容的基础上添加内容,就要用到xlutils库,首先以“只读”方式用xlrd打开页面,再用xlutils.copy复制,再调用.write方法写入内容。需要的包import xlrdfrom xlutils.copy import copy一个小例子,向一个已经存在的...原创 2018-04-23 19:21:05 · 10135 阅读 · 1 评论