python编程
文章平均质量分 57
energy_百分百
while(1){慢几步,深几度}
展开
-
从源码层面,深入理解 Bert 框架
看了好多 Bert 的介绍文章,少有从源码层面理解Bert模型的,本文章将根据一行一行源码来深入理解Bert模型BertBertModel 类的源码如下(删除注释)class BertModel(BertPreTrainedModel): def __init__(self, config): super(BertModel, self).__init__(config) self.embeddings = BertEmbeddings(config)原创 2021-04-29 23:11:55 · 2760 阅读 · 4 评论 -
#彻底理解# pytorch 中的 squeeze() 和 unsqueeze()函数
在网上找了很多关于 torch.squeeze() 和 torch.unsqueeze()函数的讲解,但是讲的都不是很明白,尤其是维度增加的位置部分,这里分享一下我自己的理解:torch.squeeze(A,N)torch.unsqueeze()函数的作用减少数组A指定位置N的维度,如果不指定位置参数N,如果数组A的维度为(1,1,3)那么执行 torch.squeeze(A,1) 后A的维度变为 (1,3),中间的维度被删除注:如果指定的维度大于1,那么将操作无效如果不指定维度N,那么将删除所原创 2021-04-29 21:52:23 · 854 阅读 · 0 评论 -
使用虚拟Python环境 C++调用Python脚本出现 Py_Initialize : unable to load the file system codec 错误
问题Fatal Python error : Py_Initialize : unable to load the file system codecModuleNotFoundError: No module named ‘encodings’如果你出现上述错误,且具备以下条件,请往下看:使用的是虚拟Python环境,且VS里配置的lib、include 两个文件夹是从虚拟环境中复制过来的,DLLs、libs两个文件夹和 Python.XXdll文件是从虚拟环境依赖的Python目录复制过来原创 2021-04-27 22:19:17 · 2972 阅读 · 0 评论 -
#深入理解# Python的多进程与多线程
文章目录知识补充1. 并发与并行2. CPU密集型与I/O密集型2.1 CPU密集型(CPU bound)2.2 IO密集型(I/O bound)1. 多进程与多线程的区别2. 多线程、多进程、CPU核心的关系3. 多进程与多线程如何选择3.1 一般情况3.2 Python语言下的选择知识补充想要学习多进程与多线程,首先要理解以下概念:1. 并发与并行一个cpu同时执行多个线程的过程叫做并发;虽然叫做并发,但在底层CPU每次只能执行一个线程,具体方法是将cpu分成多个时间片段,然后让CPU以这些时原创 2021-04-23 17:01:22 · 249 阅读 · 0 评论 -
解决 from scipy.misc import comb ImportError: cannot import name ‘comb‘ 问题
因为scipy.misc中的comb位置已经移到scipy.special中,所以,将文件中from scipy.misc import comb改为from scipy.special import comb就会没问题了。例如,我在import librosa时,会报错: cannot import name ‘comb’错误import路径为:site-packages\sklearn\metrics\cluster\supervised.pysite-packages\sklear原创 2021-02-19 13:55:44 · 2730 阅读 · 0 评论 -
#深入分析# pandas中使用 drop 和 del删除列数据的区别
在Python中del 和drop方法都能够删除dataframe中的列数据,但两者也有着些许区别。首先 del 属于 Python的内置函数函数,drop属于pandas中的内置函数drop对列和行都进行操作;del仅对列进行操作。drop一次可以处理多个项目;del一次只能操作一个。drop可以就地操作或返回副本;del仅是就地操作。两种函数在执行效率上很接近,但是在较大数据上,drop函数优势更明显,尤其实在处理多列数据时...原创 2021-02-18 12:04:50 · 2581 阅读 · 0 评论 -
pandas中使用fillna函数填充NaN值
1. 参数解析1.1 inplace参数取值:True、FalseTrue:直接修改原对象False:创建一个副本,修改副本,原对象不变(缺省默认)1.2 method参数取值 : {‘pad’, ‘ffill’,‘backfill’, ‘bfill’, None}, default Nonepad/ffill:用前一个非缺失值去填充该缺失值backfill/bfill:用下一个非缺失值填充该缺失值None:指定一个值去替换缺失值(缺省默认这种方式)1.3 limit参数:限制原创 2021-02-09 11:10:08 · 10561 阅读 · 0 评论 -
#深入理解# 列表,字典,元组解析式
列表,字典,元组解析本质上是先生成一个生成器,然后使用生成器对列表,字典,元组在初始化的时同时赋值1. 列表解析生成一个列表nums = [1, 3, 9]list_gen = [num**2 for num in nums if x <= 5] # [1, 9]代码描述:表达式(num**2)用于生成你要存储到列表中的值for循环(for num in nums) 用于给表达式供值条件判断(if x <= 5)表示供值的元素应满足的条件2. 字典解析生成一个字典pers原创 2021-02-07 22:11:19 · 257 阅读 · 0 评论 -
#深入解析# Python中的 * 和 ** 运算符
文章目录一级目录二级目录三级目录1. `*`1.1 乘法运算1.2 解包1.3 多变量赋值时获取多个元素1.3.1 获取剩余部分1.3.2 获取中间部分1.3.3 如果左值比右值要多,那么带 `*` 的变量默认为空1.3.4 嵌套解包1.4 带*前缀的函数形参能够接受任意个非关键字参数2.`**`2.1 指数运算2.2 对字典变量进行解包2.3 带`*`前缀的函数**形参**能够接受**任意个关键字参数**一级目录二级目录三级目录Python中 *的作用乘法运算对列表等数据结构进行解包多变原创 2021-01-29 16:44:43 · 341 阅读 · 0 评论 -
Python下 etree.xpath 中 双斜杠 和单斜杠的区别
标识含义‘//’表示从任意节点的任意子节点开始‘/’表示从当前节点开始因此一般在xpath输入字符串参数中会以'/'开头,如果以'//'开头会直接从根节点的第一个子节点开始匹配,如果匹配不到返回空...原创 2021-01-28 21:50:25 · 2602 阅读 · 0 评论 -
#简明深入# Python 中的 iteritems() 和 items() 函数以及Python2.0到Python3.0的感悟
Python2.x中 iteritems()函数返回的是一个迭代器,而items() 返回的是一个带序号的列表,在for循环中用法是一样的。但是iteritems()函数因为返回的是迭代器更加节省内存Python 3.x 里面,iteritems() 和 viewitems() 这两个方法都已经废除了,而 items() 得到的结果是和 2.x 里面 viewitems() 一致的。在3.x 里 用 items()替换iteritems() ,可以用于 for 来循环遍历类似的,在Pyth..原创 2021-01-18 17:51:59 · 686 阅读 · 1 评论 -
#浅析# 使用Python中的scipy.sparse构造稀疏矩阵
目录1.简介2.scipy.sparse的稀疏矩阵类型2.1 bsr_matrix2.2 coo_matrix2.3 csc_matrix2.4 dia_matrix2.5 dok_matrix2.6 lil_matrix2.7 spmatrixSparse(基类型)3.矩阵初始化4. scipy.sparse中的矩阵函数4.1 构造函数4.2 判别函数4.4 针对元素的函数4.5 转化函数4.6 其他函数1.简介Python中的scipy.sparse,顾名思义就是一个用于初始化和操作稀疏矩阵的包,在原创 2021-01-03 16:43:31 · 2073 阅读 · 0 评论 -
python中 赋值、copy、deepcopy的区别
1.直接赋值两个对象指向同一个地址 一个对象是另一个对象的引用2.copycopy.copy() 浅拷贝 内部元素相同(指向同一内存地址)3. deepcopy()copy.deepcopy() 深拷贝 直接开辟一个新的内存地址新建一个对象...原创 2020-12-30 15:24:15 · 226 阅读 · 0 评论 -
#浅析# Python yield 关键字
1.总结1.带有yield关键字的方法叫生成器,执行这类方法时,碰到yield关键字就会函数就会返回yieid后边的内容,下次执行会从上一次结束的地方继续会执行2.为了节省内存,生成器只有使用时才会产生3.send(msg)与next()的区别在于send可以传递参数给yield表达式,这时传递的参数会作为yield表达式的值,而yield的参数是返回给调用者的值。4.send(msg)与next()都有返回值,它们的返回值是当前迭代遇到yield时,yield后面表达式的值,其实就是当前迭代中yi原创 2020-12-30 10:43:49 · 130 阅读 · 1 评论 -
使用 urlretrieve 实现 通过 http 获取文件并继续下载
很多较大的资源,在网络速度和稳定性较差的环境下,经常会出现下载失败的问题,而request下的 urlretrieve 方法又不支持在上次下载的基础上继续下载。如果想要使用 urlretrieve 方法下载较大资源,可以尝试使用一个第三方库–resumable-urlretrieve,这个库在原有urlretrieve库的基础上实现了在未完成的下载任务下继续下载的功能。主页如下:https://www.cnpython.com/pypi/resumable-urlretrieve当然 你也可以使用pi原创 2020-09-19 22:15:15 · 376 阅读 · 0 评论 -
#pyqt5# 在QTableWidget控件中 选中行列索引
选中列索引self.Table.scrollToItem(self.Table2.item(1, 0), QAbstractItemView.PositionAtTop)self.Table.verticalHeader().setCurrentIndex(self.Table.model().index(1,0))选中行索引self.Table.scrollToItem(self.Table2.item(1, 0), QAbstractItemView.PositionAtTop)self.T原创 2020-09-19 21:58:58 · 5301 阅读 · 1 评论 -
#最详细# django 使用 ORM 连接 mysql 数据库并创建表
1 修改settings.py文件进入项目将项目中settings.py文件中的database的值修改为:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名', 'USER': '用户名', 'PASSWORD': '密码', 'HOST': '数据库所在服务器的ip地址', 'PORT': '原创 2020-07-01 14:07:38 · 485 阅读 · 0 评论 -
#深入理解# django 路由系统中 path 和 re_path 参数的区别
re_path和path的作用都是一样的。只不过re_path是在写url的时候可以用正则表达式,功能更加强大。写正则表达式都推荐使用原生字符串。也就是以r开头的字符串。在正则表达式中定义变量,需要使用圆括号括起来。这个参数是有名字的,那么需要使用(?P<参数的名字>)。然后在后面添加正则表达式的规则。默认path(route, view, kwargs=None, name=None)默认re_path(route, view, kwargs=None, name=None)pa.原创 2020-06-25 10:50:21 · 900 阅读 · 0 评论 -
#深入理解# Django 动态路由系统
在django项目中,应该在链接中尽量避免出现 **?..**符号 (包含get请求参数的链接) 从而增加链接在搜索引擎中的排名。具体做法是使用动态路由系统,配置动态路由的步骤如下:在 urls.py 文件中配置动态链接在对应的函数中接收动态链接中的参数# urls.py文件from showDATA import views #引入事务处理函数urlpatterns = [ path('admin/', admin.site.urls),#系统默认创建的 path('logi原创 2020-06-23 22:48:49 · 734 阅读 · 0 评论 -
django 项目操作命令 汇总
1. 使用python编译器创建django项目cd [项目目录]django-admin startproject [项目名]2. 创建APP2.1 使用命令行创建cd [项目路径] #首先要进入django项目python manage.py startapp [app名]2.2 在PyCharm中创建在pycharm中创建django项目并同时创建app1:点击1选择创建Django项目2:填写项目名称3:添加app名称...原创 2020-06-17 10:41:32 · 327 阅读 · 0 评论 -
#全面理解# django 中设置 cookie 的超时时间
在django中,set_cookie方法中有两个参数可以设置超时时间,max_age和expiresmax_age 设置从当前时间起多长时间超时(单位:秒),expires设置超时日期。response=redirect("/editelem/")ct =datetime.datetime.utcnow()v=timedelta(seconds=10)value=ct+v#response.set_cookie('project', json.dumps(project),expires=va原创 2020-05-28 10:54:10 · 991 阅读 · 0 评论 -
django 用户配置 cookie
1在django中 redirect render HttpResponse 三者都可以在返回页面时返回cookies具体方法为:response=redirect("/editelem/")response.set_cookie('project', json.dumps(project))return responseresponse=render(request,'login.html',{"message":"用户名或密码错误!请重新输入。"})response.set_cookie原创 2020-05-28 10:27:21 · 341 阅读 · 0 评论 -
启动 nginx+uwsgi+django
pass原创 2020-05-12 21:29:47 · 187 阅读 · 0 评论 -
#最全面# BeautifulSoup 中 获取标签下的文本
常用方法:使用get_text()方法可以获取当前标签下的所有文字,包括其子标签的,该方法可自动剔除其余的修饰标签若当前标签的子节点是文字,可使用.string获得其下的文本内容高阶方法:若文本属于此标签的一个子节点、兄弟节点、父节点等,可灵活使用以下遍历方法进行获取:1.下行遍历标签树的下行遍历.content 子节点列表,将tag所有儿子节点存入列表.children子节点的迭代类型,与.contents类似用于循环遍历儿子节点 .descendants 子孙节点的迭代类型,包含所原创 2020-05-09 20:21:44 · 13575 阅读 · 0 评论 -
浅谈 python package (包) 中__init__.py 文件的作用
python库中的根目录下都会有一个 __ init__.py 文件,话句话说,如果一个python项目文件夹下含有 __ init__.py 文件,那么这个文件夹便是一个python库。__ init__.py文件的作用如下:Python中package的标识,不能删除定义__all__用来模糊导入方便在外部引用库内的类和方法其他对于第1点开头已经解释过,下边着重解释一下后三点:1. 定义__all__用来模糊导入首先来回顾一下Python中的包和模块有两种导入方式:精确导入和原创 2020-05-09 15:34:46 · 1314 阅读 · 0 评论 -
#深入理解# PyQt5库下的 __init__.py 文件
下面这一串代码是 PyQt5 库下 __ init__.py 文件中的内容:def find_qt(): import os, sys qtcore_dll = '\\Qt5Core.dll' dll_dir = os.path.dirname(sys.executable) if not os.path.isfile(dll_dir + qtcore_dll): path = os.environ['PATH'] dll_dir =原创 2020-05-09 15:32:08 · 1045 阅读 · 0 评论 -
#深入理解# __init__.py 文件在 python3 和 python2 下的不同
下面通过一个例子说明:目录结构如下:├── mdl│ ├── __init__.py│ ├── bar.py│ └── foo.py└── test.py 文件内容,从上至下,依次为mdl/init.py:#encoding:utf-8from .foo import Foo #python2、3都适用from .bar import Bar #python2、3都适用#from mdl.foo import Foo #python2、3都适用#原创 2020-05-09 15:27:09 · 1395 阅读 · 1 评论 -
#从根本上解决# pycharm 无法 import 同目录下的 .py 文件或自定义模块
pycharm 默认情况下只检索项目根目录下的py文件,当引用的py文件不在项目根目录时,会出现错误,类似下边的情况:解决方法:只需将要引用的py文件所在的文件夹添加到默认搜索搜索文件夹即可,具体有如下两种方法:(推荐)右键py文件所在的文件夹,依次点击:MarkDircetory as -> Sources Root即可。将py文件所在文件夹作为一个package,在p...原创 2020-05-08 17:18:19 · 3678 阅读 · 1 评论 -
python下 将 pymysql 返回的元组数据转换为列表
from itertools import chain...sql="select elems from table"cursor.execute(sql)elems = cursor.fetchall()resultlist = list(chain.from_iterable(elems))...原创 2020-05-06 21:37:07 · 5856 阅读 · 0 评论 -
windows下配置 chromedriver
1. 根据浏览器版本下载对应版本的chrome驱动在chrome浏览器的地址栏输入如下地址,查看chrome浏览器版本:chrome://version/在如下网站下载 chromedriver 驱动文件,并将下载的压缩包解压,最后将得到的 chromedriver.exe 文件拷贝到 python 编译器的 Scripts 目录下通过 pip 命令 安装 selenium通过命...原创 2020-04-14 22:49:50 · 783 阅读 · 1 评论 -
#深入理解# python 的 print() 函数 在当前行打印 不换行
1. 参数介绍python中的print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)函数的参数说明如下:参数说明objects复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。sep用来间隔多个对象,默认值是一个空格。end用来设定以什么结尾。默认值是换行符 \n,我...原创 2020-04-11 14:13:13 · 1887 阅读 · 1 评论 -
#深入理解# python中的 with 函数
1. 介绍with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。2. 语法# 自定义类class context_expression: def __enter__(self): print("run __enter__") return "F...原创 2020-04-10 17:00:13 · 1595 阅读 · 1 评论 -
#深入解析# python 中的 上下文管理器
这里写目录标题1. 简介2. __ enter __() 函数3. __ exit __()函数4. contextlib协议4.1 contextmanager 装饰器4.2 nested函数5 closing 对象1. 简介一个类只要实现了__enter__()和__exit__(),我们就称之为上下文管理器。2. __ enter __() 函数主要执行一些环境准备工作,同时返回一资...原创 2020-04-10 16:55:33 · 375 阅读 · 1 评论 -
#根源解决# pyqt5 打包后出现 Could not find QtWebEngineProcess.exe 错误
这个错误,往往是因为生成exe的路径存在中文,因此将 生成的软件放在非中文路径下便能解决此问题.原创 2020-04-09 15:15:43 · 5286 阅读 · 7 评论 -
#pyqt5# 在 QTablewidget控件中 通过鼠标拖动实现 改变行索引 或 列索引
通过重写 QTablewidget 控件,可以实现鼠标拖动改变列索引或行索引1.鼠标拖动列表元素改变行索引:class TableWidget(QTableWidget):# class Label(QWidget,QPainter): def __init__(self, *args, **kwargs): super().__init__(*args, **kwa...原创 2020-04-06 22:23:29 · 6627 阅读 · 1 评论 -
#根本上解决# pyinstaller 打包 包含 scipy seaborn 包的项目 出现 lib not found 错误
开看了好多国内国外的解决办法,最终还是自己分析原因 通过升级 pyinstaller 从根本上解决了此问题,虽然解决方法很简单,但重要的是背后的原理。解决方法请看这篇文章->#根本上解决# 使用 Pyinstaller 打包后 出现 lib not found 错误...原创 2020-04-01 16:56:23 · 4969 阅读 · 2 评论 -
#根本上解决# 使用 Pyinstaller 打包 Pyqt5项目 后 出现 Failed to execute script XXX 错误
问题描述:使用pyinstaller工具对pyqt5项目进行打包后,执行exe程序时 出现 Failed to execute script XXX 错误解决方法将打包后的目录,将目录下所有以Qt5开头的文件复制到 PyQt5/Qt/bin目录下,再次执行exe程序即可运行...原创 2020-04-01 16:18:18 · 6433 阅读 · 1 评论 -
#根本上解决# 使用 Pyinstaller 打包后 出现 lib not found 错误
1.问题使用 pyinstaller 打包python项目时,有时会在命令行出现" WARNING: lib not found: …" 错误,意思就是无法找到指定的dll库,有些系统库缺失不会对生成的exe程序造成影响(如果运行exe程序的系统中包含这些库,那么即使在打包时缺失这些库,运行程序时软件也会在运行程序的体统中找到这些库并使用),有些python包对应的库缺失则会在执行程序时出现"...原创 2020-04-01 15:40:30 · 11500 阅读 · 4 评论 -
#python# #Pyqt5# 根本上解决 QWidget 无法显示边框的问题
在 QT 中 QWidget 控件只支持 background、background-clip和background-origin 三个属性。因此不能设置边框,使用QFrame代替QWidget,QFrame继承自QWidget,并且带有框架属性。class demoQWidget(QFrame): def __init__(self): super(demoQWidget...原创 2020-03-25 23:29:32 · 6101 阅读 · 1 评论 -
#源头解决# 使用 django-admin.py 命令报 “ No module named django.core “ 错误
使用 django-admin.py 命令部署 django 项目时报如下错误:DjangoTraceback (most recent call last): File "/usr/local/python3/lib/python3.7/site-packages/django/bin/django-admin.py", line 2, in <module> from...原创 2020-03-18 15:00:30 · 4891 阅读 · 2 评论