Python
文章平均质量分 75
secsilm
NLP 和 Python 开发者,正在学习 C++。GitHub:github.com/secsilm,知乎:zhihu.com/people/lyjwf1216
展开
-
Exception [WinError 995] 由于线程退出或应用程序请求 的解决办法
问题Windows 10 系统下,IPython 解释器内执行某些程序,会导致出现类似如下报错:Unhandled exception in event loop: File "C:\Users\secsilm\Anaconda3\lib\asyncio\proactor_events.py", line 768, in _loop_self_reading f.result() # may raise File "C:\Users\secsilm\Anaconda3\lib\asyn原创 2021-05-24 15:36:38 · 2731 阅读 · 4 评论 -
Python 3.10 的新功能:模式匹配 Pattern Matching
简介2021 年 3 月 2 日的时候,Guido 发推说 3.10.0a6 出来了,文档也已经有了,4 月 5 日会释出 a7,5 月 3 日出 b1。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fXdlI7RP-1615705797360)(https://i.loli.net/2021/03/04/wLZiV64fDnHmkbj.png)]推文中还特别提到「With Pattern Matching」,这是 3.10 的一个重磅功能,于去年 9 月 12 日在原创 2021-03-14 15:13:12 · 5117 阅读 · 0 评论 -
Lemmatization VS Stemming
简单来说,两者都是对词的归一化,但 Stemming(中文一般译为词干提取,以下简称 stem)更为简单、快速一些,通常会使用一种启发式方法去掉一个词的结尾。 Lemmatization(中文一般译为词形还原,以下简称 lemma)更为「智能」一些,上下文相关,有一个 vocab,不在其中的词不会被处理:Returns the input word unchanged if it cannot be found in WordNet. —— nltk.stem.wordnet — NLTK 3.5 d原创 2021-03-08 16:28:53 · 1435 阅读 · 0 评论 -
给 Python 程序员的 C++ 简易入门指南
译者注:本文原文成文较早,里面一些语法可能已经不是最新的了,但是其大部分观点在我看来仍然具有点拨意义,帮助你快速对 C++ 有个认识。本文改编自 Michigan State University 的 Rich Enbody 和 Bill Punch 的一篇文档。本文目的本文是给 Python 程序员的 C++ 简易入门,帮助你开始学习 C++。这不是一份完整的 C++ 入门。简洁优先于细节。为什么是 C++?为什么 Python 程序员要在乎 C++ 呢?C++ 及其父语言 C 更接近于操.翻译 2020-11-22 19:45:48 · 2704 阅读 · 0 评论 -
有意思的 lstrip 和 removeprefix(Python 3.9)
废话不多说,上正文。对比Python 3.9 的新特性中,有两个新的字符串方法:str.removeprefix(prefix, /)、str.removesuffix(suffix, /),前者是去除前缀,后者是去除后缀。ěi~,是不是感觉似曾相识,这不就是 lstrip()、rstrip() 的功能吗?还真不是。来看一个对比:>>> '今天天气不错'.removeprefix('今天')'天气不错'>>> '今天天气不错'.lstrip('今天')'气原创 2020-05-24 12:46:20 · 7808 阅读 · 3 评论 -
PDF 转图片时丢字的一种可能解决方案
问题Python 中 PDF 转图片一般用的是 pdf2image。有时我们会发现 PDF 转出来的图片都是空白,或者缺失了一些字,具体表现就是一些应该有字的区域是空白。由于某些原因我不能把出现问题的文件放上来,不过大致就是这个情况。主要的代码如下:images = pdf2image.convert_from_path('/path/to/pdf', output_folder='imag...原创 2020-04-09 16:44:42 · 4049 阅读 · 0 评论 -
使用 plotly 绘制 Choropleth 地图
本文将通过绘制中国省级 Choropleth 地图来解释如何使用 plotly 绘制 Choropleth 地图,主要有两种方法:底层 API plotly.graph_objects.Choroplethmapbox 和高层 API plotly.express.choropleth_mapbox,数据是 COVID-19 在某一天的疫情数据。什么是 Choropleth 地图Chorop...原创 2020-02-27 20:24:39 · 11456 阅读 · 12 评论 -
Python logging 较佳实践
记录日志是程序中尤其是 web 服务中的重要一环,恰到好处的日志记录可以帮助我们了解程序运行情况以及方便排(shuai)错(guo)。logger 和 handler如果使用 logging 不多,可能对 logger 和 handler 这两个概念不熟,大多数还是直接使用 logging.info() 来记录日志。Python 官方给了一个流程图来说明日志消息(LogRecord)在 lo...原创 2019-12-30 17:09:18 · 2010 阅读 · 2 评论 -
gunicorn accesslog 为空的一种可能解决办法
问题在 gunicorn 的配置文件中,有 accesslog 和 errorlog 两项,分别用来记录接口的访问历史和服务启动以及错误消息。假设有部分配置文件如下:loglevel = 'info'accesslog = "log/gunicorn_access.log"errorlog = "log/gunicorn_error.log"正常来说服务启动并有相应请求后,应该在 l...原创 2019-12-10 21:40:37 · 3106 阅读 · 2 评论 -
BERT 是如何分词的
BERT 是如何进行分词的BERT 表示 Bidirectional Encoder Representations from Transformers,是 Google 于 2018 年发布的一种语言表示模型。该模型一经发布便成为争相效仿的对象,相信大家也都多少听说过研究过了。本文主要聚焦于 BERT 的分词方法,后续再谈模型实现细节。BERT 源码中 tokenization.py 就是预...原创 2020-05-19 10:13:15 · 25140 阅读 · 30 评论 -
2017 Python 问卷调查结果初步分析
Note:本文在我的个人站点同步发布:2017 Python 问卷调查结果初步分析 · Lee’s Space Station,无广告,体验更好。 未经授权,禁止转载。前言2017 年末,PSF(Python Software Foundation,Python 软件基金会)和 JetBrains 一起进行了一次全球范围内的关于 Python 使用情况的问卷调查,共有来自 1...原创 2018-04-29 14:48:02 · 8628 阅读 · 2 评论 -
【Python】使用 zipfile 解压含有中文文件名的 zip 文件
问题在使用 Python 内置标准库 zipfile 解压文件时,如果压缩文件中有的文件含有中文,那么解压后就会发现文件名中的中文部分是乱码。例如我分别新建三个 txt 文件:文件1.txt,文件2.txt 和 文件3.txt,然后将这三个文件压缩到一个名为 文件.zip 的压缩文件中。然后我们使用下面的代码来解压:import zipfilewith zipfile.ZipFile...原创 2018-04-05 21:11:47 · 19422 阅读 · 2 评论 -
奇异值分解 SVD 的数学解释
奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解(Matrix Decomposition)的方法。除此之外,矩阵分解还有很多方法,例如特征分解(Eigendecomposition)、LU分解(LU decomposition)、QR分解(QR decomposition)和极分解(Polar decomposition)等。这篇文章主要说下奇异值分解,原创 2017-03-29 12:33:19 · 46628 阅读 · 12 评论 -
sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义
使用sklearn库可以很方便的实现各种基本的机器学习算法,例如今天说的逻辑斯谛回归(Logistic Regression),我在实现完之后,可能陷入代码太久,忘记基本的算法原理了,突然想不到coef_和intercept_具体是代表什么意思了,就是具体到公式中的哪个字母,虽然总体知道代表的是模型参数。好尴尬,折腾了一会,终于弄明白了,记录下来,以说明自己 too young。正文我...原创 2016-10-26 13:39:10 · 59758 阅读 · 13 评论 -
Plotly 初步
写在前面如果图形和文字显示有异常,请前去我的个人小站:Plotly 初步 · Lee’s Space Station 查看,体验更好。简介Plotly 是一个用于绘制交互式图表的工具库,基于 React 和 Flask,基本功能免费,可以在 Jupyter Notebook 上进行在线或者离线绘图,支持 Python、MATLAB 和 R 等许多语言,其同类产品(Python 领域)是 bo...原创 2020-10-20 15:45:42 · 2410 阅读 · 0 评论 -
修改 logging 时间
问题在记录一些必要信息时,我通常会使用 logging 模块,在输出信息时同时可以输出时间和日志等级,例如使用 basicConfig 来先设定日志格式:logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', level=logging.INFO, ...原创 2019-01-06 19:32:22 · 6835 阅读 · 11 评论 -
理解 Python 中的 for 循环
译者注:本文翻译自 Trey Hunner 于 2019 年 6 月 18 日发表的文章 Loop Better: a deeper look at iteration in Python文中括号或者引用块中的 斜体字 为对应的英文原文或者我自己注释的话(会标明「译者注」),否则为原文中本来就有的话文中的「我」均指原作者 Trey Hunner目录保留英文原文一些术语及特殊用语保留英...翻译 2019-07-06 10:20:36 · 7198 阅读 · 2 评论 -
有点坑的 np.array_split
假如我们想要把一个 array-like 的东西拆分成多个小组(或者叫 bucket),给定组的数目或者组的大小,最后一组不足则保持原样。那么我们想到的可能是 np.array_split() 函数。我们使用其官方例子来说明一下。例子 1:把一个含有 8 个元素的列表拆分成 3 组,那么 np.array_split() 的结果是:>>> x = np.arange(8....原创 2019-07-17 15:38:48 · 1959 阅读 · 0 评论 -
Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)解决办法
由于我很早就在 GitHub 下载了 TensorFlow 的源码库没有更新,在运行 TensorFlow 官方的 CNN 例子的时候,总是报 ImportError 错误,找不到 cifar10 模块,后来发现是 TensorFlow 的源码库更新了,这些模型实现都被移到了一个新的源码库:models 。但是呢,在我 clone 了 models 到本地后,按照 TensorFlow 官方的例子运原创 2017-02-26 11:45:44 · 16895 阅读 · 0 评论 -
Python 中 strptime 的简单使用
strptime是python datetime库中的函数,用于将一个日期字符串转成datetime日期格式便于后期处理,使用格式为datetime.strptime(date_string, format),其中date_string 就是要转成日期的字符串,format 根据date_string 不同而不同,format 有以下格式:下面举个简单的例子,计算两个日期的差此外,...原创 2016-06-27 17:14:05 · 40600 阅读 · 0 评论 -
Python NumPy 基础
前言这两天读完《利用Python进行数据分析》 这本书的第4章:NumPy 基础:数组和矢量计算 后,在进行下一步阅读高级应用前,先整理本章内容,做个笔记备查,也好加深印象。在往下看前请确保你已经安装了NumPy 库,并且已经使用 import numpy as np 加载numpy库。如果 还没有安装,那么可以在cmd(windows下)中使用 pip install numpy 命令安装,...原创 2016-04-03 16:50:10 · 5783 阅读 · 2 评论 -
【TensorFlow | TensorBoard】理解 TensorBoard
TensorBoard 是用于可视化 TensorFlow 模型的训练过程的工具(the flow of tensors),在你安装 TensorFlow 的时候就已经安装了 TensorBoard。我在前面的 【TensorFlow】TensorFlow 的卷积神经网络 CNN - TensorBoard版 和 【Python | TensorBoard】用 PCA 可视化 MNIST 手写数字识原创 2017-08-20 10:01:19 · 39932 阅读 · 19 评论 -
【TensorFlow】DNNRegressor 的简单使用
tf.contrib.learn.DNNRegressor 是 TensoFlow 中实现的一个神经网络回归器。一般神经网络用于分类问题的比较多,但是同样可以用于回归问题和无监督学习问题。此文的代码和所生成的 TensorBoard 文件可以从 这里 下载。tf.contrib.learntf.contrib.learn 是 TensorFlow 提供的一个机器学习高级 API 模块,让用户可以更方原创 2017-06-02 22:03:42 · 15090 阅读 · 9 评论 -
【Python】Numpy 中的 shuffle VS permutation
有时候我们会有随机打乱一个数组的需求,例如训练时随机打乱样本,我们可以使用 numpy.random.shuffle() 或者 numpy.random.permutation() 来完成。这两者非常相似,实现的功能是一样的,那么他们到底有什么区别?本文代码及图片可以在 我的GitHub 找到。参数区别以下 numpy.random.shuffle() 简称 shuffle,numpy.random原创 2017-06-17 23:28:21 · 23019 阅读 · 4 评论 -
【Python】统计字符串中英文、空格、数字、标点个数
题外话:今天打酱油的做了网易数据挖掘工程师的在线笔试题,被打击了。本文代码可在 这里 下载。问题在网上无意间看到这么一个题目:统计一个字符串中的中英文、空格、数字、标点符号个数。 正好再熟悉一下 Python 中字符串相关方法,所以来做一下。代码# coding: utf-8import stringfrom collections import namedtupledef str_count原创 2017-03-25 22:01:51 · 36481 阅读 · 3 评论 -
【Python】numpy 中的 copy 问题详解
这篇文章本是我在 segmentfault 上的一个回答,但是越来越觉得有必要单独拿出来,毕竟这个问题挺常见的。具体可参看 numpy 官方文档 。正文numpy关于copy有三种情况,完全不复制、视图(view)或者叫浅复制(shadow copy)和深复制(deep copy)。而 b = a[:] 这种形式就属于第二种,即视图,这本质上是一种切片操作(slicing),所有的切片操作返回的都是原创 2017-03-01 16:54:11 · 39064 阅读 · 4 评论 -
【TensorFlow | 升级】TensorFlow 1.0 发布
前面写了 TensorFlow 在Windows上的安装教程,当时版本还是 0.12 。NOW首届 TensorFlow 开发者大会(TensorFlow Dev Summit)已于美国时间昨日召开,YouTube 还进行了直播。更重要的是,TensorFlow 1.0 版本发布。Google Research Blog 也于昨天在 博客 中公布了这一消息。改动这一版本的改动还是比较大的,很多旧的原创 2017-02-16 22:46:55 · 12347 阅读 · 3 评论 -
【TensorFlow】TensorFlow 的多层感知器(MLP)
前面有几篇博文讲了使用 TensorFlow 实现线性回归和逻辑斯蒂回归,这次来说下多层感知器(Multi-Layer Perceptron)的 TensorFlow 实现。本篇博文的代码及结果图片等可以在这里下载,里面包含TensorFlow的实现和sklearn的实现,以及各自的结果图片。原理 多层感知器(Multilayer Perceptron,缩写MLP)是一种前向结构的人工神经网络,原创 2016-11-19 20:56:14 · 17220 阅读 · 3 评论 -
【Python | TensorBoard】用 PCA 可视化 MNIST 手写数字识别数据集
Principal component analysis (PCA) is a statistical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly u原创 2016-12-10 19:23:02 · 16359 阅读 · 8 评论 -
【TensorFlow】学习率、迭代次数和初始化方式对准确率的影响
想必学过机器学习的人都知道,学习率、训练迭代次数和模型参数的初始化方式都对模型最后的准确率有一定的影响,那么影响到底有多大呢?我初步做了个实验,在 TensorFlow 框架下使用 Logistics Regression 对经典的 MNIST 数据集进行分类。 本文所说的 准确率 均指 测试准确率。代码from tensorflow.examples.tutorials.mnist impo原创 2016-10-29 16:46:50 · 67697 阅读 · 2 评论 -
XGBoost 在 Windows 10 和 Ubuntu 上的安装
关于什么是 XGBoost,我在这里不再解释,如果有时间的话再写一篇文章来解释,在数据科学里非常有用。大家可以参考 Tianqi Chen 的论文 XGBoost: A Scalable Tree Boosting System ,本篇文章只是在 Windows 上安装 XGBoost 的 Python 包的方法。官网官网 介绍的方法是从 GitHub 编译安装,但是在我的机器上没有成功,pip 同原创 2017-05-18 10:58:31 · 2339 阅读 · 1 评论 -
【Python】自动生成命令行工具 - fire 简介
Python 中用于生成命令行接口(Command Line Interfaces, CLIs)的工具已经有一些了,例如已经成为 Python 标准库的 argparse 和第三方的 click ,这些都是很不错的工具。但是这些工具为 Python 程序生成 CLIs 的时候稍显麻烦,需要增加的地方比较多,过程稍显繁琐。今天介绍的这个工具,几乎可以不改变原始代码就可以生成 CLIs,是 Google原创 2017-04-22 10:16:43 · 17961 阅读 · 0 评论 -
Ubuntu 14.04 64 位安装 Google 的 TensorFlow
本文首发于我的微信公众号:赛克分享君,未经允许,不得随意转载。文末附有公众号二维码,感兴趣的话可以试着关注一下,关注了不喜欢欢迎随时取消,可以的话取关的时候告诉我原因,以让我改进,谢谢:)。今天来说一下机器学习库 TensorFlow 的在 Ubuntu14.04 64位下的安装。什么是 TensorFlow关于什么是 TensorFlow ,这里引用一下官网的介绍: TensorFlow™原创 2016-08-27 10:23:48 · 31692 阅读 · 0 评论 -
用 Python 发电子邮件
本文首发于【红叶枫啦】微信公号,未经允许,不得转载。使用的库这个程序涉及两个库:smtplib 和 email。这两个库都是Python自带的,所以不需要额外的下载安装,此外,这次使用的Python版本为2.7。思路步骤总体思路很简单,就像我们平常上网是通过HTTP协议一样,我们发送邮件是通过SMTP(Simple Mail Transfer Protocol,简单...原创 2016-10-16 16:46:19 · 13125 阅读 · 2 评论 -
【TensorFlow】TensorFlow 的线性回归
前面 有篇博文 讲了讲Ubuntu环境下安装TensorFlow,今天来说一说在TensorFlow中如何进行线性回归。训练数据本次使用的训练数据是美国房价数据,做了一些预处理,完整数据可从这里下载,原始数据共有1460行81列,其中我选用了LotArea(房屋面积)和SalePrice(售价)两个变量来分别作为自变量和因变量,处理后样本个数为1140个,也就是说全部训练数据是一个...原创 2016-10-22 20:53:57 · 12930 阅读 · 3 评论 -
【Python】Pandas 的 apply 函数使用示例
apply 是 pandas 库的一个很重要的函数,多和 groupby 函数一起用,也可以直接用于 DataFrame 和 Series 对象。主要用于数据聚合运算,可以很方便的对分组进行现有的运算和自定义的运算。数据集使用的数据集是美国人口普查的数据,可以从这里下载,里面包含了CSV数据文件和PDF说明文件,说明文件里解释了每个变量的意义。数据大致是这个样子:美...原创 2016-11-03 11:25:42 · 96116 阅读 · 1 评论 -
【Python】小谈 numpy 数组占用内存空间问题
之前跟同学讨论过numpy数组的占用空间大小问题,但是今天给忘了,又重新试验了一下,主要是利用sys模块的getsizeof函数,使用的版本是 Python3.5。记录下来,以备后忘。问题一个空的numpy数组对象占用多大空间。一个int32、int64、float32、float64数占用多大空间。代码import numpy as npimport ...原创 2016-11-30 18:30:53 · 47162 阅读 · 7 评论 -
【TensorFlow】TensorFlow 的卷积神经网络 CNN - 无 TensorBoard 版
前面 有篇博文讲了多层感知器,也就是一般的前馈神经网络,文章里使用 CIFAR10 数据集得到的测试准确率是 46.98%。今天我们使用更适合处理图像的卷积神经网络来处理相同的数据集 - CIFAR10,来看下准确率能达到多少。本文代码基于 TensorFlow 的官方文档 做了些许修改,完整代码及结果图片可从 这里 下载。这篇 文章是对本文的一个升级,增加了 TensorBoard 的实...原创 2016-12-28 12:13:13 · 6341 阅读 · 16 评论 -
【TensorFlow】TensorFlow 的卷积神经网络 CNN - TensorBoard 版
前面 写了一篇用 TensorFlow 实现 CNN 的文章,没有实现 TensorBoard,这篇来加上 TensorBoard 的实现,代码可以从 这里 下载。什么是 TensorBoard To make it easier to understand, debug, and optimize TensorFlow programs, we’ve included a s...原创 2017-03-17 10:57:39 · 6241 阅读 · 4 评论 -
【TensorFlow】Windows10 64 位下安装 TensorFlow - 官方原生支持
之前 写过一篇在 ubuntu 下安装 TensorFlow 的教程,那个时候 TensorFlow 官方还不支持 Windows 系统,虽然可以通过其他方法安装,但是终究不是原生的,而且安装过程繁琐易错。好消息是,Google官方在11月29号的开发者博客中宣布新的版本(0.12)将 增加对Windows的支持,我11月30号知道的,立马就安装试了试,安装过程非常简单,不过也有一些需要手动调整。...原创 2016-12-01 09:11:44 · 351471 阅读 · 384 评论