python库
文章平均质量分 82
june_francis
学习笔记&填坑
展开
-
pandas提速之swifter
相信大家使用完pandas一段时间之后,多多少少会去寻找使得当下数据处理过程效率更高的方式或者方法,那么在大规模的数据之间完成一些操作,我们往往会浪费大量的时间,为了充分的利用软硬件资源,演化出了2种主流的优化方式,分别是向量化和并行化。今天要给大家介绍的一款工具swifter就是综合使用了这2中方式。swifter是一款用于给使用在 pandas DataFrame 或者 Series 上的 function 进行加速的包。那么swifter具体是如何做到高效率的呢?原创 2022-09-07 16:50:23 · 1912 阅读 · 0 评论 -
如何使用Python解决不同系统平台文件操作的差异带来的不便
前言如题,有些时候涉及到在不同的系统平台上对文件做一些操作,但是往往有一些操作并不是兼容的,比如说 Mac OS/Linux 系统和 Windows 系统之间,Python 里的 os 模块的某些功能便不是兼容的。接下来给大家安利一款文件处理和路径相关操作的库 pathlib 。正文首先,假设现在我们有这样一个需求,将某个目录中带有 .txt 后缀的文件修改成 .csv 的形式,那么根据以往经验,我们可以使用 os 模块来解决这个需求如下:import os def modify_suffix原创 2020-09-10 16:29:45 · 714 阅读 · 2 评论 -
安装fasttext过程中出现的问题解决
前言如题,因工作需要,需要安装使用fasttext这个Python库完成文本处理,但是直接pip install fasttext会报错:后来查询官网,发现直接通过github获取源码安装比较保险:git clone https://github.com/facebookresearch/fastText.git然后进入文件夹,执行安装:cd fastTextsudo pip install .但是发现还是报上面那个错误,经过一番搜索,发现是自己的centos的g++库没有,github原创 2020-09-01 15:40:23 · 1044 阅读 · 0 评论 -
Python中的源代码反编译成字节码及其解析
前言我之前的一篇博文Python程序的执行过程(解释型语言和编译型语言)给大家提及了Python中的pyc文件的诞生和它的作用,其实是为了提升Python解释器的效率,将py文件编译成了字节码,并保存到了pyc文件中。其中Python实际上是将源代码编译为虚拟机的一组指令(字节码,也叫pycodeobject),Python解释器就是该虚拟机的实现。Python虚拟机Cpython使用基于堆...原创 2020-04-22 16:47:37 · 2125 阅读 · 3 评论 -
在Windows上使用modin
前言在 Windows 上安装使用 modin 时有一些坎坷,特此记录。Modin 是加州大学伯克利分校 RISELab 的一个早期项目,旨在促进分布式计算在数据科学领域的应用。它是一个多进程的数据帧(Dataframe)库,具有与 Pandas 相同的应用程序接口(API),使用户可以加速他们的 Pandas 工作流。在一台 8 核的机器上,用户只需要修改一行代码,Modin 就能将 Pa...原创 2019-12-26 12:09:48 · 2592 阅读 · 12 评论 -
Python程序提速神器--Numba快速上手指南
前言如果你在使用 Python 进行高性能计算, Numba 提供的加速效果可以比肩原生的 C/C++ 程序,只需要在函数上添加一行 @jit 的装饰。它支持 CPU 和 GPU ,是数据科学家必不可少的编程利器。我们知道,计算机只能执行二进制的机器码,C、C++ 等编译型语言依靠编译器将源代码转化为可执行文件后才能运行,Python、Java 等解释型语言使用解释器将源代码翻译后在虚拟机上执...原创 2019-12-23 20:37:19 · 2407 阅读 · 0 评论 -
安装shapely-geo包出现的问题
今天需要安装一个Python包叫做shapely,但是直接安装时是报了如下的错误:这种情况即是不能自动下载啦,那就下载压缩包,直接安装压缩包。访问地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/在界面全局搜索:然后选择和自己安装的Python解释器版本和系统版本对应一致的 shapely 库下载,下载好之后,是一个后缀名为 whl 的文件,...原创 2019-12-02 19:54:00 · 997 阅读 · 0 评论 -
pandas的性能优化
前言在使用 pandas 去处理某些数据的过程中,我相信有些小伙伴会有些苦恼,如何能让 pandas 的处理速度能再提升一些呢?本文给大家提供一些可行的建议,帮助大家提升处理数据的效率。什么是pandas?Pandas 是数据科学和数据竞赛中常见的 Python 第三方库,我们使用 Pandas 可以进行快速读取数据、分析数据、构造特征。但 Pandas 在使用上有一些技巧和需要注意的地方,...翻译 2019-10-25 00:04:13 · 1448 阅读 · 0 评论 -
关于pickle和json这两个库之间的使用对比
前言Python的json和pickle模块实现了数据的序列和反序列化。在使用和功能实现上没有太大区别,那么接下来我们分别来看看这两个模块之间的使用和对比。① json模块一、说到json这个模块我相信大家使用最多的功能就是它对json字符串的序列化和反序列化,分别对应json.dumps()和json.loads()方法:import jsondata = { 'name' ...原创 2019-09-19 00:22:27 · 1720 阅读 · 0 评论 -
Collections之namedtuple
前言今天给大家再介绍一款工具,非常的实用,这款工具就是Python标准库collections里面的namedtuple。关于它的介绍,官网给出了明确的定义:Named tuples assign meaning to each position in a tuple and allow for more readable, self-documenting code. They can b...翻译 2019-06-10 00:14:14 · 7462 阅读 · 0 评论 -
Collections之Counter
前言首先Counter这个工具能够用来让我们快速便捷的对某些对象做一些统计操作,包括可迭代对象iterable和映射对象mappings。正文语法:collections.Counter([iterable-or-mapping])注解:A Counter is a dict subclass for counting hashable objects. It is an unorder...翻译 2019-05-23 22:36:46 · 1437 阅读 · 0 评论 -
Python标准库之datetime
前言在工作中遇到了这样一个需求,需要对时间做各种转换,一时之间没有构思,只隐约记得Python当中的time模块和datetime模块能够完成这件事,所以特意在工作之余花点时间对这两个标准库系统的学习一下并记录下来,方便以后查阅。正文首先datetime模块的功能是在支持日期时间数学运算的同时,关注如何能够更有效地解析其属性用于格式化输出和数据操作。datetime.date1、date...翻译 2019-05-27 18:08:47 · 578 阅读 · 0 评论 -
Collections之deque
前言此系列文章将学习总结经常用到的几个collections的方法。collections.deque语法:collections.deque([iterable[, maxlen]])使用方法:我们给deque传入一个可迭代对象iterable,返回一个新的deque对象,这个deque对象包含iterable的所有元素。那么这个deque对象到底是个什么鬼?其实它是一种类似于栈和...翻译 2019-05-09 15:48:32 · 1452 阅读 · 0 评论 -
python里的sys模块
Python里的sys模块简介sys模块的功能很多,我们这里介绍一些比较实用的功能,相信你会喜欢。 sys模块的常见函数sys.argv:实现从程序外部向程序传递参数。 sys.exit([arg]):程序中间的退出,arg=0为正常退出。 sys.getdefaultencoding():获取系统当前编码,一般默认为是ascii。 sys.setdefaultenco...原创 2018-03-23 22:29:18 · 2089 阅读 · 2 评论 -
理解Python的异步编程
前言很多朋友对异步编程都处于“听说很强大”的认知状态,鲜有在生产项目中使用它。而使用它的同学则大多数都停留在知道如何使用Tornado、Twisted、Gevent这类异步框架上,出现各种古怪的问题难以解决。而且使用了异步框架的部分同学,由于用法不对,感觉它并没有牛逼到哪里去,所以很多同学做Web后端服务时还是采用Flask、Django等传统的非异步框架。 1. 什么是异步编程...转载 2018-08-04 23:52:11 · 496 阅读 · 0 评论 -
浅谈异步IO
我们已经知道,CPU的速度远远快于磁盘、网络等IO。在一个线程中,CPU执行代码的速度极快,然而,一旦遇到IO操作,如读写文件、发送网络数据时,就需要等待IO操作完成,才能继续进行下一步操作。这种情况称为同步IO。 在IO操作的过程中,当前线程被挂起,而其他需要CPU执行的代码就无法被当前线程执行了。 因为一个IO操作就阻塞了当前线程,导致其他代码无法执行,所以我们必须使用多线程或者多...转载 2018-08-15 00:32:46 · 6985 阅读 · 0 评论 -
Python标准库之asyncio
asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。 用asyncio实现Hello world代码如下: import asyncio@asyncio.coroutine...转载 2018-08-15 01:49:31 · 471 阅读 · 0 评论 -
python3.5中的asyncio标准库新用法之async/await
用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。 为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读。 请注意,async和await是针对co...转载 2018-08-15 02:08:25 · 1984 阅读 · 0 评论 -
浅谈基于asyncio实现的HTTP框架aiohttp
asyncio可以实现单线程并发IO操作。如果仅用在客户端,发挥的威力不大。如果把asyncio用在服务器端,例如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutine实现多用户的高并发支持。 asyncio实现了TCP、UDP、SSL等协议,aiohttp则是基于asyncio实现的HTTP框架。 我们先安装aiohttp:pip install aio...转载 2018-08-15 16:07:59 · 1086 阅读 · 0 评论 -
itertools之其他常用功能函数
一、itertools.accumulate语法:itertools.accumulate(iterable[, func])注解:Make an iterator that returns accumulated sums, or accumulated results of other binary functions (specified via the optional func a...翻译 2019-05-08 17:15:59 · 674 阅读 · 0 评论 -
itertools之无限迭代器(Infinite Iterators)
前言在Python的标准库当中有这么一个神奇的工具库,它能让你使用最简单的方式写出更简洁高效的代码,这就是itertools,使用这个工具能为你生成一个优雅的迭代器。为此鄙人专门抽出了一点时间去研究了一下它的官方文档,感觉这个工具实在是太强大了,那么咱们闲话不多说,直接进入本次的主题,和大家一起来了解一下其中的Infinite Iterators。一、itertools.count首先它与P...翻译 2019-05-06 16:08:06 · 742 阅读 · 0 评论 -
itertools之排列组合迭代器(Combinatoric Iterators)
一、itertools.product语法:*itertools.product(iterables, repeat=1)注解:Cartesian product of input iterables.Roughly equivalent to nested for-loops in a generator expression. For example, product(A, B) re...翻译 2019-05-06 17:37:01 · 481 阅读 · 0 评论 -
Python标准库之Operator
前言对这个标准库觊觎已久了,今天有时间就抽空特意来学习总结一下。正文那么是什么让operator这个模块这么让人着迷呢?首先operator这个模块它包含了一系列高效的Python内置操作,比如说对象之间的对比操作,逻辑操作,数学操作和序列操作。第一弹给大家先来一张操作和operator方法的对应图,大家可以根据需要去取用:这其中的一些方法在operator中还有一些变种方法,区...翻译 2019-05-09 13:52:23 · 1715 阅读 · 0 评论 -
python中的six模块的作用
six : Six is a Python 2 and 3 compatibility librarySix没有托管在Github上,而是托管在了Bitbucket上,不过这些都不是重点,重点是它的作用。众所周知 Python 2 和 Python 3 版本的分裂给 Python 开发者们带来了很大的烦恼,为了使代码同时兼容两个版本,往往要增加大量的代码。 于是 Six 出现了。正如它的介...转载 2018-03-22 16:33:02 · 5709 阅读 · 0 评论