python知识点
文章平均质量分 70
Xiaofei@IDO
这个作者很懒,什么都没留下…
展开
-
基于python环境的pip安装事项
基于python环境的Pip的使用原创 2022-12-07 10:09:45 · 573 阅读 · 0 评论 -
pandas 三大利器 map, apply, applymap的通俗理解
前言目前,处理数据的软件包括:R和python,还有一些其他的软件。当然,我也是经常在R和python之间切换使用。一般来说,但我进行数据的统计分析时候,我首选的是R程序,因为确实包含了太多的统计函数,还有需要贡献者。随着,python的粉丝的暴涨,越来越多的编程都或多或少使用了python,在编程语言的排行榜中,python也稳居前3。在python的使用中,numpy,pandas是数据处理的利器。接下来,我将阐述pandas常用的批量处理数据的三个函数,它能够有效的避免低效率(反正大家都这么说)原创 2022-02-26 17:41:04 · 1092 阅读 · 0 评论 -
PyQT5 如何自定义空间点击事件
背景最近,应业务部门需求,写一个小的可处理程序。我们通常使用PyQT5进行小工具的开发。但是,在小工具开发过程中,时常使用一些控件,比如(QLineEdit等),希望在点击的时候,就能出发信号,执行相应功能。然而,这些控件没有点击的信号出发,就不能关联槽函数。接下来,我们来进行自定义。自定义这里我进讲述一种方法。基于QLineEdit控件的自定义点击信号。class MyLineEdit(QLineEdit): clicked = pyqtSignal() def mouseRele原创 2022-02-23 09:55:17 · 769 阅读 · 1 评论 -
Multiprocessing之Pool类的简单解读,看了就能使用
Multiprocessing之Pool类解读一、Pool类介绍在之前的博客中有对并行和并发进行了介绍。在python种主要存在两种方法实行:多线程和多进程。对于python来说,多线程实际上是并发的,并没有完全利用多核的优势。当然这也要看具体的需求,如果是计算密集型的,多采用并行的方法;如果是IO密集型的,多采用并发的方法。这要是考虑到互相切换的开销。解下来,我们介绍一种多进程的方法:Pool类。Pool可以提供指定数量的进程,供用户调用。当有新的请求提交到Pool中时,如果Pool还没有满,此时原创 2021-11-28 20:02:49 · 5604 阅读 · 0 评论 -
pandas 的DataFrame的map, apply, applymap函数的应用
1 背景在日常的数据处理中,经常会对一个DataFrame进行逐行、逐列和逐元素的操作,对应这些操作,Pandas中的map、apply和applymap可以解决绝大部分这样的数据处理需求。这篇文章就以案例附带图解的方式,为大家详细介绍一下这三个方法的实现原理(详见https://pandas.pydata.org/pandas-docs/stable/reference/groupby.html)2 样本数据集In [20]: boolean=[True,False] ...: gender原创 2021-05-02 11:20:45 · 635 阅读 · 0 评论 -
Pandas之DataFrame的Groupby操作的常用三板斧
1. 模拟数据In [1]: import pandas as pdIn [2]: import numpy as npIn [3]: company=["A","B","C"] ...: ...: data=pd.DataFrame({ ...: "company":[company[x] for x in np.random.randint(0,len(company),10)], ...: "salary":np.random.randint(5,5原创 2021-05-02 11:03:47 · 341 阅读 · 0 评论 -
python之面向对象 super 函数的精讲
1. super函数的简介一种在子类中调用父类的接口。主要用于继承。广度优先搜索顺序要么不用,要么全用2. super函数的使用2.1 继承关系简单class A(object): def __init__(self): print('A') class B(A): def __init__(self): super(B, self).__init__() print('B')# mro()方法用于显示类的原创 2021-04-18 23:00:45 · 230 阅读 · 1 评论 -
入门loging【python】模块-看了就能用
1. loging框架主要分为4个框架:Loggers:可供程序直接调用的接口,app通过调用提供的api来记录日志Handlers:决定将日志记录分配至正确的目的地Filters:对日志信息进行过滤, 提供更细粒度的日志是否输出的判断Formatters:制定最终记录打印的格式布局2. loging日志级别主要分为5个级别:DEBUG :详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行WARNING:一些意想不到的事情发生了,或表明一些问题在不久的将来会出现(例如:原创 2020-11-28 10:42:53 · 1337 阅读 · 1 评论 -
python 函数 - reduce和map
1. reduce()1.1 库模块from functools import reduce1.2 定义reduce(function, sequence [, initial] ) -> valuereduce函数会对参数序列中的元素进行累积。function参数是一个有两个参数的函数:在第一次调用时,reduce依次从sequence中取两个元素,并赋值给function的两个参数;在第二次调用时,上一次调用function的结果作为function的第一个参数,依次从seque原创 2020-11-19 20:30:47 · 168 阅读 · 0 评论 -
Pandas提取含有指定字符串的行或列(DataFrame子集)
Pandas提取含有指定字符串的行(完全匹配,部分匹配)1. 概述接下来,讲解如何采用正则的方式提取DataFrame子集完全匹配==部分匹配str.contains():包含一个特定的字符串- 参数na:缺少值NaN处理- 参数case:大小写的处理- 参数regex:使用正则表达式模式str.endswith():以特定字符串结尾str.startswith():以特定的字符串开头str.match():匹配正则表达式模式注:要提取部分匹配的行,可以使用pand原创 2020-10-29 21:55:40 · 48757 阅读 · 2 评论 -
python字符串格式化-format语法糖
0. 概述format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串,一定程度上与%目的一致。但在某些方面更加的方便1. 基本用法1.1 按照{}的顺序依次匹配括号中的值s = "{} is a {}".format('Tom', 'Boy')print(s) # Tom is a Boys1 = "{} is a {}".format('Tom')# 抛出异常, Replacement index 1 out of range for positional ar原创 2020-10-28 14:18:20 · 818 阅读 · 1 评论 -
基于python装饰器的时间记录
import timedef loging(function): """ 装饰器函数loging :param function:想要计时的函数 :return: """ def wrapper(*args, **kwargs): time_start = time.time() res = function(*args, **kwargs) cost_time = time.time() - time_st原创 2020-10-28 13:49:36 · 267 阅读 · 0 评论 -
[Python] 随机抽样
1. 基于random模块random.sample(population, k)从 population 中不放回抽取 k 个元素population:可以为可迭代是的数据对象,如list,setk:随机抽取的样本数量不放回抽样import randomN = range(10)m = 3a = random.sample(N, m)print(a)# 从0~9的序列中采样了3个样本Out: [0, 5, 8]2. 基于numpy模块numpy.random.c原创 2020-10-21 16:25:46 · 1894 阅读 · 2 评论 -
[Python] 获取脚本所在路径:执行脚本时的执行时的目录和脚本文件所在目录
两个目录的区分(第一种)执行脚本时执行时的目录:在哪个目录中执行的,就获取哪个目录(第二种)脚本文件所在目录:虽然在部门的目录中进行执行的,但是总是获得脚本真实所在的目录例子:目录结构 |-C:/test | |-rootpath | | |-path.py | | |-sub_path | | | |-sub_path.py # 其中,path.py中调用了sub_path.py# 在c:/test目录下,执行python c:/test/rootpath/path.pyo原创 2020-10-20 09:36:15 · 5329 阅读 · 2 评论 -
python 数据下载+下载进度条
1. 实例# -*- coding:utf-8 -*- import sysimport requestsimport os# 屏蔽warning信息,因为下面verify=False会报警告信息requests.packages.urllib3.disable_warnings()def download(url, file_path): # verify=False 这一句是为了有的网站证书问题,为True会报错 # stream = True,表示采用流下载原创 2020-10-16 09:23:30 · 255 阅读 · 0 评论 -
Pandas 实现循环的三大利器
1. 概述在实际工作中,基于 pandas进行数据处理的时候,经常会对数据框中的单行、多行(列也适用)甚至是整个数据进行某种相同方式的处理,比如将数据中的 sex字段将男替换成1,女替换成0。其中,for循环是一种简单、直接的方式,但运行效率很低。本文介绍了 pandas中的三大利器: map、apply、applymap。2. 数据模拟import pandas as pdimport numpy as npboolean = [True, False]gender = ["Male",原创 2020-09-13 15:33:15 · 2378 阅读 · 0 评论 -
基于python抓取图片或PDF文字(中文和英文)
抓取文字1. 软件安装1.1 Tesseract安装1.2 python 模块1. 软件安装文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesseract是一个用于文字识别的工具。基于python模块可以完成这项复杂的任务。1.1 Tesseract安装网址下载:https://digi.bib.uni-mannheim.de/tesseract/注:w32表示32位系统;w64为64位系统环境配置一定要记住安装位置,以便用于配置环境变量配置环境变量 (以原创 2020-08-07 11:56:39 · 1193 阅读 · 0 评论 -
多线程分块处理同一文件,并写入同一文件
其实,在测试中,该方法并没有多大程度上节约时间。可能存在以下原因:本地服务器中有大任务在运行,导致等待时间延长大任务的运行占用了所有的cpu,这也使得线程间切换等待时间延长,使并发看起来并不是并发这种线程间切换的延长的时间,增加了处理时间,反而不如单一线程的时间快,因为近乎不存在切换开销大家可以再次优化,节约时间。import os, sysimport timeimport reimport threading# lock - 保护写文件mu = threading.Lock()原创 2020-07-28 15:07:31 · 788 阅读 · 0 评论 -
PYTHON 你不知道多进程处理方式
多进程概述概述 multiprocessing 是一个用于产生进程的模块,具有与 threading 模块相似API。 multiprocessing 模块同时提供本地和远程并发,使用子进程代替线程,有效避免 Global Interpreter Lock (GIL,全局解释器锁) 带来的影响。因此, multiprocessing 模块允许程序员充分利用机器上的多核。该模块可运行于 Unix 和 Windows 。 multiprocessing 模块还引入了threading 模块中没原创 2020-07-28 14:46:51 · 110 阅读 · 0 评论 -
通俗易懂的进程,线程和协程讲解
进程,线程,协程概念比较比较通俗的理解测试概念进程和线程进程就是一个程序在一个数据集上的一次动态执行过程(数据集是程序在执行过程中所需要使用的资源)。线程也叫轻量级进程,它是一个基本的 CPU 执行单元,是比进程更小的能独立运行的基本单位。进程和线程的关系:一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。资源分配给进程,同一进程的所有线程共享该进程的所有资源。CPU 分给线程,即真正在 CPU 上运行的是线程。并行和并发并行处理是计算机系统中能同原创 2020-07-21 14:55:48 · 705 阅读 · 0 评论 -
PYTHON 异步批量文件下载
文件下载1. 小文件下载2. 大文件下载3. 异步批量文件下载1. 小文件下载基于requests模块的get()函数下载。下载原理如下:先将文件内容保存至变量(即设备内存)中,然后再保存至指定文件中。这种下载有一个最大的限制是内存大小。import requestsdef request_zip(url): rc = requests.get(url) # 请求链接后保存到链接变量 rc 中 with open("Download_test.jpg", 'wb') as原创 2020-07-20 13:20:38 · 2630 阅读 · 0 评论 -
PYTHON 正则表达式的中括号[]和竖线 | 的详细讲解
[] 和 | 的详解讲解 在之前写过几篇关于正则表达式的基本使用概念,但是,对其中较为不常用或者经常使用其基本功能,缺乏了对其进一步的理解。在做字符串匹配时,遇到一个问题:如何执行正则表达式的或? 经过再一次的理解概念和实战,有了一定的理解。 我们还是来看看如何操作吧。import restring1 = "adsferf Novel234324fff dfasfdfda"string2 = "adfadfa EN23423.2dfafd asdfa"rgx = re.com原创 2020-06-01 11:51:02 · 7231 阅读 · 0 评论 -
PYTHON 列表解析表达式精讲
PYTHON 列表解析表达式精讲前言定义两种常见的格式前言 列表解析表达式不仅可以简化代码,其也是一种所谓的 “向量化” 操作。在一定程度上,增加了代码的可读性和速度。因此,值得学习!!!定义 列表解析表达式以中括号 [] 和 if (else) / for 表达式组成,结果产生一个 列表对象 。如果实际操作就很容易理解了。如下:lst = [i for i in range(10)]lstOut[10]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]两种常见的原创 2020-05-27 21:16:19 · 979 阅读 · 0 评论 -
PYTHON Excel操作(二)
Python EXCEL数据处理前言前言 目前,办公化操作中,经常使用Excel保存数据文件,这种文件具有用户友好型。因此,多数情况下,在展现给受众体时,输出Excel表格数据是一种较好的选择。 Python作为一种极度受欢迎的数据处理脚本语言,操作Excel文件将会一种极好的选择。常用的操作Excel的函数如下,现将简化介绍其应用。感兴趣的同学可以查看其官方文章。XlsxWriterxlrdxlwtopenxl读...原创 2020-05-22 11:33:29 · 197 阅读 · 0 评论 -
PYTHON 持久化操作(保存结构化数据对象)
PYTHON 持久化操作前言pickle函数cpickle函数joblib函数其他函数前言 在Python操作数据时,有时候文件较大,读入数据时间花费较多的时间。经过处理的数据,有时候也会用作数据库或基础文件,以用于后续其他程序或操作的调用。如果我们从头读取诺大文件并进行处理,将会浪费时间和精力。因此,持久化保存结构化的数据,将是一种较好的良好的习惯。 在Python中有以下几种方法可用于持久化结构数据。pickle函数 pickle函数可以保存多个结构化数据。import p原创 2020-05-21 14:16:12 · 840 阅读 · 0 评论 -
python:基于xlrd和xlwd模块的Excel操作
基于xlrd和xlwd的Excel操作基本概念xlrd模块基本概念xlrd 用于读取Excel数据表格;xlwt 用于写入表格;仅支持 .xls 和 .xlsx 格式如果Excel表的文字编码格式为 gb2312 ,读取后会显示乱码,请先转成 Unicodeworkbook 定义为 工作薄 ; sheet 定义为 工作表 ; cell 定义为 单元格一个 workbook 包含多个 s...原创 2020-05-06 15:52:48 · 588 阅读 · 0 评论 -
Anaconda配置不同环境
Anaconda配置环境Anaconda安装创建并激活不同环境Anaconda安装Ana安装路径:从Anaconda官方下载对应版本文件(如Mac版本)wget https://repo.anaconda.com/archive/Anaconda3-2020.02-MacOSX-x86_64.shsh Anaconda3-2020.02-MacOSX-x86_64.sh创建并激活不同环...原创 2020-04-28 20:41:34 · 529 阅读 · 0 评论