python好用的库
晓东邪
扎实基础,记录学习点滴。
展开
-
python操作日志保存到数据库
文章目录项目中日志持久化一般是保存到文件,但是这种方式下如果对日志进行查找、聚合、统计等操作不太方便,当然大项目可以采用ELK,但是一些小项目可能直接存到数据库就足够了,基于此,笔者开发了log2db 项目,开源地址在: github,项目比较简单,因为日志写入可能比较频繁,因此选用了消息队列用于非阻塞式写入,对代码运行效率影响最小化,如果觉得好用的话不妨给个 star。安装方式:git clone https://github.com/xiaodongxiexie/log2dbpip instal原创 2021-04-17 22:19:52 · 2430 阅读 · 0 评论 -
python的faker库
首先需要:pip install fakerIn [530]: import fakerIn [531]: init = faker.Faker(locale='zh-cn')In [532]: init.name()Out[532]: '诸明'In [533]: L = []In [534]: for i in range(100): ...: name = init.last原创 2017-08-10 17:41:49 · 7207 阅读 · 0 评论 -
python中将汉字转换为拼音的库xpinyin
首先是pip install xpinyinIn [4]: import fakerIn [5]: from xpinyin import PinyinIn [6]: init = faker.Faker(locale='zh-cn')In [8]: pinyin = Pinyin()In [10]: for i in range(10): ...: name = init.na原创 2017-08-10 23:24:53 · 13333 阅读 · 1 评论 -
将一组排序后的序列进行合并后顺序迭代
你有一系列排序序列,想将它们合并后得到一个排序序列并在上面迭代遍历。In [134]: import heapqIn [135]: a = [1, 4, 7, 10]In [136]: b = [2, 5, 6, 11]In [137]: for c in heapq.merge(a, b): ...: print (c) ...: 12456710原创 2017-08-12 18:02:56 · 1634 阅读 · 0 评论 -
python 删除非空文件夹
一般删除文件时使用os库,然后利用os.remove(path)即可完成删除,如果删除空文件夹则可使用os.removedirs(path)即可, 但是如果需要删除整个文件夹,且文件夹非空时使用os.removedirs(path)就会报错了,此时可以使用shutil库,该库为python内置库,是一个对文件及文件夹高级操作的库,可以与os库互补完成一些操作,如文件夹的整体复制,移动文件夹,对文件原创 2017-08-14 10:22:02 · 85048 阅读 · 1 评论 -
Python 库之heapq
堆是一种特殊的树形数据结构,每个节点都有一个值 。堆的特点是根节点的值最大(或者最小),而且根节点的两个孩子也能与孩子节点组成子树。heapq是python内置的堆排序。常用方法有:heapify #以线性时间将序列转换为堆heappush #将value 压到堆中heappop #将最小(最大,默认为最小)值弹出heappushpop #将给定v原创 2017-08-14 11:42:17 · 6657 阅读 · 0 评论 -
json 一些妙用
JSON(JavaScript Object Notation) python中内置库为json。In [399]: d = dict(name='Tom', age=20, sex='male', tall=185)In [400]: dOut[400]: {'age': 20, 'name': 'Tom', 'sex': 'male', 'tall': 185}In [401]: impor原创 2017-08-14 14:19:52 · 456 阅读 · 0 评论 -
通过字符串调用对象属性或方法
有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象属性或方法1、evalIn [634]: def getmethod(x,char='just for test'): ...: return eval('str.%s' % x)(char) ...: In [635]: getmethod('upper')Out[635]: 'JUST原创 2017-08-15 17:45:27 · 14251 阅读 · 0 评论 -
解除装饰器作用(python3新增)
一个装饰器已经作用在一个函数上,你想撤销它,直接访问原始的未包装的那个函数。假设装饰器是通过 @wraps 来实现的,那么你可以通过访问 wrapped 属性来访问原始函数:>>> @somedecorator>>> def add(x, y):... return x + y...>>> orig_add = add.__wrapped__>>> orig_add(3, 4)7原创 2017-08-24 15:26:21 · 5955 阅读 · 2 评论 -
defaultdict的妙用
python中的内置库collections中有个defaultdict,这个具体的用法就不说了,资料很多,确实好用。 但是想在嵌套的dict中使用defaultdict就比较麻烦了,正好在网上看到一个相关的, 使用递归解决了这个问题,非常的妙:from collections import defaultdictdef tree(): return defaultdict(tree)使用原创 2017-05-06 11:20:52 · 1864 阅读 · 0 评论 -
xgboost 参数介绍
(1)objective[ default=reg:linear ] 定义学习任务及相应的学习目标,可选的目标函数如下:“reg:linear” –线性回归。 “reg:logistic” –逻辑回归。 “binary:logistic” –二分类的逻辑回归问题,输出为概率。 “binary:logitraw” –二分类的逻辑回归问题,输出的结果为wTx。 “count:poisson转载 2017-09-20 14:54:13 · 7915 阅读 · 0 评论 -
Python 比较文本相似性(difflib,Levenshtein)
最近工作需要用到序列匹配,检测相似性,不过有点复杂的是输入长度是不固定的,举例为:input_and_output = [1, 2, '你好', 世界', 12.34, 45.6, -21, '中国', '美丽']其中,需要从input_and_output 中选取不固定长度的一段作为输入,且顺序不定,然后去与总体进行比较,找出最符合的,开始是对汉字进行数值化编码,不过后来由于出现汉字越来越多,遂放原创 2017-10-13 00:07:15 · 12357 阅读 · 3 评论 -
使用numba对Python运算加速
有时候需要比较大的计算量,这个时候Python的效率就很让人捉急了,此时可以考虑使用numba 进行加速,效果提升明显~ (numba 安装貌似很是繁琐,建议安装Anaconda,里面自带安装好各种常用科学计算库)from numba import jit@jitdef t(count=1000): total = 0 for i in range(int(count)原创 2018-01-27 14:16:45 · 3367 阅读 · 1 评论 -
string 中的maketrans和translate
maketrans 和 translate 是 Python 内置的 string 包中的两个类似于密码本的方法,一般来说,使用 translate 前需要先制作一个 maketrans 的 “密码本”(table)。# ---------------------此处有误-----------------------------------#仅支持python2,python3废弃了该方...原创 2018-02-08 11:47:45 · 12158 阅读 · 1 评论 -
Python调用graphviz绘制结构化图形网络
这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎stargithub地址首先要下载:Graphviz - Graph Visualization Software安装完成后将安装目录的bin 路径加到系统路径中,有时候需要重启电脑。 然后: pip install graphvizimport graphviz as gz有向图dot = ...原创 2018-03-21 18:02:06 · 9787 阅读 · 3 评论 -
sklearn中的Pipeline
一般来说,使用sklearn建模时步骤如下: 0、start 1、分隔训练集和测试集(和验证集) 2、数据预处理 3、模型选择 4、使用GridSearchCV进行参数寻优 5、end其中,数据预处理部分可能需要先fit_transform再transform,相对较为繁琐,此时可以通过Pipeline(管道)进行流水线处理。 代码讲解如下:#导入需要的包In [296]: impo原创 2017-08-10 11:43:49 · 24466 阅读 · 0 评论 -
python取数作为临时极大值(极小值)
编程中有时候需要一个初始极大值(或极小值)作为temp,当然可以自定义设置为10000(whatever),不过python中有一个值可以代替之:在python2.7中可以用这个(不过python3版本就没得了)>>> import sys>>> sys.maxint2147483647还可以利用numpy库(这个python3也可以使用,当然先确认安装了numpy)>>> import num原创 2017-08-10 10:13:38 · 12323 阅读 · 0 评论 -
python查找指定文件夹下所有文件并按修改时间倒序排列
代码如下:import os, glob, timedef search_all_files_return_by_time_reversed(path, reverse=True): return sorted(glob.glob(os.path.join(path, '*')), key=lambda x: time.strftime("%Y-%m-%d %H:%M:%S", time.l原创 2017-08-09 14:45:45 · 6807 阅读 · 0 评论 -
tushare的使用
TuShare 官方定位是一个财经数据接口包,官网地址为:TuShare。可以用pip直接安装:pip install tushare由于里面对pandas等安装包的依赖,最好是在Anaconda环境下进行安装,不然还要装很多额外的依赖包,而Anaconda已经打包安装好了,相信我,Anaconda用起来会让你爱不释手。具体的使用技巧详见官网: 可以根据需要对自己...原创 2017-05-04 17:58:36 · 5871 阅读 · 0 评论 -
colorama==>python改变输出字体颜色
colorama是python第三方库中一个可以改变输出流颜色的玩意儿, 安装可以通过:pip install colorama简单介绍from colorama import Fore, Back, Stylefor color in ['GREEN', 'RED', 'BLUE', 'YELLOW', 'WHITE']: print getattr(Fore, color), "It'原创 2017-05-05 00:05:23 · 8992 阅读 · 0 评论 -
chardet==>探别编码问题
chardet是一个关于探别字符为何种编码的python库,需要额外安装; 可以通过:pip install chardet 安装。 简单演示下如何使用:输入:import chardetimport urllibtest = urllib.urlopen('http://www.baidu.com/').read()chardet.detect(test)输出:{'confidence原创 2017-04-12 21:37:59 · 3969 阅读 · 0 评论 -
tqdm==>python可扩展进度条
Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。 安装可以通过:pip install tqdmconda install tqdm #ipython基本用法:1、牛刀小试1.1对range的使用 在tqdm还有个关于range的封装: 1.2对任意list的使用1.3pan原创 2017-04-23 13:01:12 · 7277 阅读 · 1 评论 -
numpy中数组的拼接
这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎stargithub地址python中的科学计算包numpy是一个非常好的扩展工具,numpy中最常见的就是针对数组ndarray的操作,部分操作与python内置的list(其拼接方式为append和extend)有重合,不过要注意使用方式,除此之外,针对ndarray进行数组拼接时有其自己的方式.接下来介绍我所知...原创 2017-05-13 00:11:21 · 61980 阅读 · 1 评论 -
pandas中Series,DataFrame的连接(拼接)
这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎stargithub地址上一篇中介绍了numpy中数组的拼接方式:numpy中数组的拼接 ,接下来介绍另一个数据处理库pandas中最常用的Series和DataFrame对序列和表格的操作 concat 如numpy中数组的拼接 中所讲是numpy中concatenate的变种,两个使用方法一致。 ...原创 2017-05-13 01:15:34 · 130499 阅读 · 0 评论 -
sklearn中的交叉验证(Cross-Validation)
这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎stargithub地址sklearn是利用python进行机器学习中一个非常全面和好用的第三方库,用过的都说好。今天主要记录一下sklearn中关于交叉验证的各种用法,主要是对sklearn官方文档 Cross-validation: evaluating estimator performance进行讲解,英文水平好...原创 2017-05-14 01:49:30 · 136984 阅读 · 4 评论 -
selenium报错记录
仿照书上的例子用selenium时发现报错WebDriverException:Message:'geckodriver'executable needs to be in Path, 这就郁闷了,错误一长串,最后确定原因是geckodriver的缘故,需要进geckodriver按下载对应的版本,解压后将geckodriver.exe放到python安装目录,如:C:\python35,该问题就原创 2017-05-23 23:18:32 · 585 阅读 · 0 评论 -
用pybrain构建BP神经网络
pybrain是一个python关于构建神经网络的包, 官方文档:http://pybrain.org/docs/index.html 安装:$ git clone git://github.com/pybrain/pybrain.git$ python setup.py install以sklearn作为辅助构建BP神经网络并保存,可二次读取使用。建立BP回归模型#coding:utf-原创 2017-04-26 18:28:02 · 10188 阅读 · 5 评论 -
tensorflow 中MNIST数据集下载
学习tensorflow文档时有一个是需要下载MNIST手写数字数据集,但是文档中的链接不翻墙打不开,可以进入tensorflow的github,地址为:tensorflowMNIST数据集下载可以将代码复制并运行:from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import原创 2017-06-08 17:52:25 · 5173 阅读 · 0 评论 -
python中将zip压缩包转为gz.tar
由于同事电脑上没有直接可以压缩gz.tar格式的压缩软件,而工作中这个又时常需要将zip文件转换为gz.tar格式,所以常常将压缩为zip格式的文件发给我来重新压缩成gz.tar格式发给他,能偷懒就不想动手,就用python的tarfile和zipfile包完成了一个将zip转换成gz.tar格式的小脚本:代码比较简单,也就几行,但是写的时候因为绝对路径的问题浪费了点时间,代码水平还是有待提高。#c原创 2017-05-09 17:45:47 · 9679 阅读 · 0 评论 -
python 库收藏
环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Python版本管理工具。Vex–可以在虚拟环境中执行命令。virtualenv–创建独立Python环境的工具。virtualenvwrapper-virtualenv的一组扩展。包管理管理包和依赖的工具。pip–Python包和依赖关系管理工具。pip-tools–保证Python包依赖关原创 2017-07-04 19:45:30 · 2113 阅读 · 0 评论 -
matplotlib 一些参数快捷设置
1、缩写_alias_map = {'color': ['c'], 'linewidth': ['lw'], 'linestyle': ['ls'], 'facecolor': ['fc'], 'edgecolor': ['ec'], 'markerfaceco原创 2017-07-16 23:56:54 · 3618 阅读 · 0 评论 -
几种将存储为str的其他类型转换回去的方法
有时候需要将数据存储为txt文件,但是再次读取时由于转换为了str类型所以需要重新转换回来,转换方式可以用以下几种:import jsonfrom ast import literal_evalIn [11]: test_list = '[1,2,3,4]'In [12]: test_dict = "{'a': 1, 'b': 2}"#方法1, 使用evalIn [13]: trans_lis原创 2017-07-21 16:40:08 · 776 阅读 · 0 评论 -
pdir ==> 扩展dir的好用的库
在使用python的时候,dir() 经常用于查看对象的方法或者属性等详情,但是,具体是方法还是属性,主要是干嘛的,还是看不到,而通过help() 出来的信息太多,而且一般不是我们想要看到的,这时候就可以通过第三方库 ===> pdir隆重登场了。可以通过pip install pdir2 进行安装,且支持Jupyter。使用起来也是很简单:1.查看pdir的介绍2.查看导入的module3.查看(原创 2017-05-04 22:49:52 · 1260 阅读 · 0 评论