python
Terry_dong
我只是个搬运工
展开
-
sklearn中 F1-micro 与 F1-macro区别和计算原理
二分类使用Accuracy和F1-score,多分类使用宏F1和微F1。最近在使用sklearn做分类时候,用到metrics中的评价函数,其中有一个非常重要的评价函数是F1值,在sklearn中的计算F1的函数为f1_score,其中有一个参数average用来控制F1的计算方式,今天我们就说说当参数取micro和macro时候的区别1、查准率,查全率,F1值:对于二...原创 2019-09-16 17:21:34 · 626 阅读 · 0 评论 -
python标准库----itertools
python标准库系列教程(一)——itertools01声明functools, itertools, operator是Python标准库为我们提供的支持函数式编程的三大模块,合理的使用这三个模块,我们可以写出更加简洁可读的Pythonic代码,本次的系列文章将介绍并使用这些python自带的标准模块,系列文章分篇连载,此为第一篇,有兴趣的小伙伴后面记得关注学习哦! 高效的...转载 2018-12-18 15:33:47 · 1834 阅读 · 0 评论 -
python re.compile()和findall()
compile(pattern[,flags] ) 根据包含正则表达式的字符串创建模式对象。>>>help(re.compile)compile(pattern, flags=0) Compile a regular expression pattern, returning a pattern object.通过help可以看到compile方法的介绍,返回...转载 2018-12-06 14:27:24 · 8230 阅读 · 0 评论 -
Numpy中stack(),hstack(),vstack()函数详解
这三个函数有些相似性,都是堆叠数组,里面最难理解的应该就是stack()函数了,我查阅了numpy的官方文档,在网上又看了几个大牛的博客,发现他们也只是把numpy文档的内容照搬,看完后还是不能理解,最后经过本人代码分析,算是理解了stack()函数增加维度的含义。以下内容我会用通俗易懂的语言解释,内容可能有点多,耐心看,如果哪里说的不对,欢迎纠正!1. stack()函数 函数原型为:st...转载 2018-11-20 17:12:07 · 229 阅读 · 0 评论 -
Python——数组重组(flatten、flat、ravel、reshape、resize)
一、numpy.flatten一、numpy.flatten<span style="color:#000000"><code>ndarray.flatten(<span style="color:#000088">order</span>=<span style="color:#009900">'C'&原创 2018-08-20 16:07:44 · 1967 阅读 · 0 评论 -
Python字符串查找算法之BMHBNFS算法
最近面试阿里,第一个算法题就是字符串匹配算法,当时一脸懵逼,连朴素字符串匹配算法都不知道,面试官还问我有没有深入了解Python语言的字符串怎么查找的,顿时戳中痛点,想想自己学Python真的还是太浅了。于是就去把字符串匹配算法全学了一遍,有brute-force算法、Rabin-Karp算法、有限自动机算法、KMP算法、Boyer-Moore算法、Horspool算法还有Sunday算法等等。然...转载 2018-07-13 15:39:44 · 674 阅读 · 2 评论 -
python __set__ __get__ 等解释
2017年02月10日 01:00:55阅读数:3403如果你和我一样,曾经对method和function以及对它们的各种访问方式包括self参数的隐含传递迷惑不解,建议你耐心的看下去。这里还提到了Python属性查找策略,使你清楚的知道Python处理obj.attr和obj.attr=val时,到底做了哪些工作。Python中,对象的方法也是也可以认为是属性,所以下面所说的属性包含方法在内。...原创 2018-06-11 17:32:00 · 10170 阅读 · 2 评论 -
python总结(五):__get__、__getattr__、__getitem__、__getattribute__之间的差异与联系
python的一切数据都是对象,包括函数、基本数据类型、自定义数据类型等等,这其中最复杂的就是对象内部存储的数据结构(引用),包括类属性、数据描述符、实例属性及非数据描述符,不仅它们的优先级不一样,而且它们的回调函数也存在很大的差异,这也是本文需要阐述的地方。如果以前有过Javascript的编程经验,初上Python肯定会对“.”运算符与“[]”之间的差异难以理解,它们不仅不能替换,而且完全不相...原创 2018-06-11 17:00:13 · 647 阅读 · 0 评论 -
Python 装饰器
装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。下面就一步步看看Python中的装饰器。一个简单的需求现在有一个简单的函数”myfunc”,想通过代码得到这个函数的大概执行时间。我们可以直接把计时逻辑方法”myfunc”内部,但是这样的话,如果要给另一个函数计时,就需要重复计时的逻辑。所以比较好的...原创 2018-06-04 16:36:22 · 225 阅读 · 0 评论 -
python 特殊方法之__call__()
_call__在Python中,函数其实是一个对象:>>> f = abs>>> f.__name__'abs'>>> f(-123)123由于 f 可以被调用,所以,f 被称为可调用对象。所有的函数都是可调用对象。一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。我们把 Person ...原创 2018-06-11 15:34:36 · 233 阅读 · 0 评论 -
Python并发编程之从生成器使用入门协程(七)
大家好,并发编程 进入第七篇。从今天开始,我们将开始进入Python的难点,那就是协程。为了写明白协程的知识点,我查阅了网上的很多相关资料。发现很难有一个讲得系统,讲得全面的文章,导致我们在学习的时候,往往半知半解,学完还是一脸懵逼。学习协程的第一门课程,是要认识生成器,有了生成器的基础,才能更好地理解协程。如果你是新手,那么你应该知道迭代器,对生成器应该是比较陌生的吧。没关系,看...转载 2019-01-03 14:41:48 · 197 阅读 · 0 评论 -
Python并发编程之深入理解yield from语法(八)
大家好,并发编程 进入第八篇。直到上一篇,我们终于迎来了Python并发编程中,最高级、最重要、当然也是最难的知识点--协程。当你看到这一篇的时候,请确保你对生成器的知识,有一定的了解。当然不了解,也没有关系,你只要花个几分钟的时间,来看下我上一篇文章,就能够让你认识生成器,入门协程了。再次提醒:本系列所有的代码均在Python3下编写,也建议大家尽快投入到Python3的怀抱中来...转载 2019-01-03 14:42:55 · 139 阅读 · 0 评论 -
Python进阶开发之元类编程
系列文章√第一章 元类编程,已完成 ;本文目录类是如何产生的如何使用type创建类理解什么是元类使用元类的意义元类实战:ORM. 类是如何产生的类是如何产生?这个问题肯定很傻。实则不然,很多人只知道使用继承的表面形式来创建一个类,却不知道其内部真正的创建是由type来创建的。type?这不是判断对象类型的函数吗?是的,type通常用法就是用来判断对象的类型。但除此之外,...转载 2019-01-03 14:44:17 · 126 阅读 · 0 评论 -
Python并发编程之学习异步IO框架:asyncio 中篇(十)
大家好,并发编程 进入第十章。好了,今天的内容其实还挺多的,我准备了三天,到今天才整理完毕。希望大家看完,有所收获的,能给小明一个赞。这就是对小明最大的鼓励了。为了更好地衔接这一节,我们先来回顾一下上一节的内容。上一节「」,我们首先介绍了,如何创建一个协程对象.主要有两种方法通过async关键字, 通过@asyncio.coroutine 装饰函数。然后有了协程对象,就需要一个事...转载 2019-01-04 12:15:55 · 353 阅读 · 0 评论 -
Python并发编程之初识异步IO框架:asyncio 上篇(九)
大家好,并发编程 进入第九篇。通过前两节的铺垫(关于协程的使用),今天我们终于可以来介绍我们整个系列的重点 -- asyncio。asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。有些同学,可能很疑惑,既然有了以生成器为基础的协程,我们直接使用yield 和 yield from 不就可以手动实现对IO的调度了吗? 为何Python吃饱了没事干,老重复造...转载 2019-01-04 12:16:02 · 205 阅读 · 0 评论 -
盘点 Python 中的那些冷知识(一)
小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来。现在已经积攒了一些了,最近打算整理一波,发出来给大家补补。一篇只分享五个,有时间了就整理。不想错过的,千万记得关注一下。1. 省略号也是对象... 这是省略号,在Python中,一切皆对象。它也不例外。在 Python 中,它叫做 Ellipsis 。在 Python 3 中你可以直接写…来得到这玩意。>...转载 2019-01-03 15:01:10 · 175 阅读 · 0 评论 -
Python并发编程之消息队列补充及如何创建线程池(六)
大家好,并发编程 进入第六篇。在第四章,讲消息通信时,我们学到了Queue消息队列的一些基本使用。昨天我在准备如何创建线程池这一章节的时候,发现对Queue消息队列的讲解有一些遗漏的知识点,而这些知识点,也并不是无关紧要的,所以在今天的章节里,我要先对Queue先做一些补充以防大家对消息队列有一些知识盲区。再次提醒:本系列所有的代码均在Python3下编写,也建议大家尽快投入到Pyth...转载 2019-01-03 14:56:14 · 159 阅读 · 0 评论 -
Python并发编程之线程中的信息隔离(五)
大家好,并发编程 进入第三篇。上班第一天,大家应该比较忙吧。小明也是呢,所以今天的内容也很少。只要几分钟就能学完。昨天我们说,线程与线程之间要通过消息通信来控制程序的执行。讲完了消息通信,今天就来探讨下线程里的信息隔离是如何做到的。大家注意:信息隔离,这并不是官方命名的名词,也不是网上广为流传的名词。是我为了方便理解而自创的,大家知道就好咯。本文目录初步认识信息隔离 ...转载 2019-01-03 14:53:52 · 190 阅读 · 0 评论 -
Python并发编程之线程消息通信机制任务协调(四)
大家好,并发编程 进入第四篇。本文目录前言 Event事件 Condition Queue队列 总结. 前言前面我已经向大家介绍了,如何使用创建线程,启动线程。相信大家都会有这样一个想法,线程无非就是创建一下,然后再start()下,实在是太简单了。可是要知道,在真实的项目中,实际场景可要我们举的例子要复杂的多得多,不同线程的执行可能是有顺序的,或者说他们的执行是有条件的...转载 2019-01-03 14:52:19 · 193 阅读 · 0 评论 -
Python并发编程之谈谈线程中的“锁机制”(三)
大家好,并发编程 进入第三篇。今天我们来讲讲,线程里的锁机制。本文目录何为Lock( 锁 )?如何使用Lock( 锁 )?为何要使用锁?可重入锁(RLock)防止死锁的加锁机制饱受争议的GIL(全局锁)何为Lock( 锁 )?如何使用Lock( 锁 )?为何要使用锁?可重入锁(RLock)防止死锁的加锁机制饱受争议的GIL(全局锁). 何为Lock( 锁 )?何为 Lock...转载 2019-01-03 14:51:18 · 232 阅读 · 0 评论 -
Python并发编程之创建多线程的几种方法(二)
大家好,并发编程 进入第二篇。今天的内容会比较基础,主要是为了让新手也能无障碍地阅读,所以还是要再巩固下基础。学完了基础,你们也就能很顺畅地跟着我的思路理解以后的文章。本文目录学会使用函数创建多线程 学会使用类创建多线程 多线程:必学函数讲解经过总结,Python创建多线程主要有如下两种方法:函数 类接下来,我们就来揭开多线程的神秘面纱。. 学会使用函数创建多线程...转载 2019-01-03 14:50:26 · 157 阅读 · 0 评论 -
Python进阶开发之网络编程,socket实现在线聊天机器人
系列文章√第一章 元类编程,已完成 ;√第二章 网络编程,已完成 ;本文目录什么是socket?创建socket客户端创建socket服务端socket工作流程图解socket公共函数汇总实战:搭建在线聊天机器人. 什么是socket?说到网络编程,难免要提到socket?那什么是socket呢,中文名叫"套接字",更难理解了吧。通俗来讲,socket表示一个网络连...转载 2019-01-03 14:49:38 · 547 阅读 · 1 评论 -
Python: 浅淡Python中的属性(property)
起源:项目过程中需要研究youtube_dl这个开源组件,翻阅其中对类的使用,对比c#及Delphi中实现,感觉Python属性机制挺有意思。区别与高级编程语言之单一入口,在类之属性这一方面,它随意的太多,以致于习惯了高级语言的严谨,对如此随意心里倒是有些不安。也难怪,因为其数据类型弱限制性,往往一个函数返回了一个结果,追溯此返回值类型,有时需要费上许多工夫!我不是随意的人,但随意起来我还真不是人...原创 2018-06-11 15:34:02 · 151 阅读 · 0 评论 -
conda 创建虚拟环境 Anconda虚拟环境
1、创建虚拟python环境:通过构建虚拟环境,可避免与其他人的软件版本冲突。conda create -n name python=2.x.x1例如创建名字为xgli的虚拟环境,python的版本为2.7.3,则命令为:conda create -n xgli python=2.7.31特别注意:在创建虚拟环境前,使用下面命令,查看是否会有重名的虚拟环境:conda env list12、激活虚...原创 2018-04-28 17:45:10 · 4711 阅读 · 0 评论 -
【Python】使用多个迭代器
如果要达到多个迭代器的效果,__iter__()只需替迭代器定义新的状态对象,而不是返回self 1 class SkipIterator: 2 def __init__(self, wrapped): 3 self.wrapped = wrapped 4 self.offset = 0 5 6 def __next__(self): ...原创 2018-04-08 16:51:33 · 791 阅读 · 0 评论 -
Python 回文
首先判断一个字符串是否回文: 1 def isPlalind(s): 2 if len(s) == 1: 3 return True 4 else: 5 return s[0] == s[-1] and isPlalind(s[1:-1]) 6 7 if __name__ == '__main__': 8 while(True...原创 2018-04-08 16:51:05 · 779 阅读 · 1 评论 -
【Python】使用super初始化超类
初始化超类的传统方式,在子类的实例中调用超类的__init__()方法。但是传统的方法有两个问题,比如:问题1: 1 class MyBaseClass: 2 def __init__(self, value): 3 self.value = value 4 5 6 class TimesTwo: 7 def __init__(self): 8 ...原创 2018-04-08 16:42:59 · 1325 阅读 · 0 评论 -
PYTHON之WITH语句原理
我们看一个with处理文件操作的实例:with open('/etc/passwd') as f: for line in f: print(line)这段代码的作用:打开一个文件,如果一切正常,把文件对象赋值给f,然后用迭代器遍历文件中每一行,当完成时,关闭文件;而无论在这段代码的任何地方,如果发生异常,此时文件仍会被关闭。 with看起来如此简单,但是其背后还有一些工作...原创 2018-04-08 16:39:58 · 197 阅读 · 0 评论 -
Python多进程编程
阅读目录1. Process2. Lock3. Semaphore4. Event5. Queue6. Pipe7. Pool multiprocessingpython中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情...原创 2018-04-08 16:36:52 · 168 阅读 · 0 评论 -
多线程threading
1.Thread创建线程:上代码:#!/usr/bin/env python3import threading import timedef A(): t_name = threading.current_thread().name #获取线程名称 for i in range(5): print(i) time.sleep(1) ...原创 2018-04-07 23:14:18 · 164 阅读 · 0 评论 -
Python进程间通信Queue
1.Queue使用方法:Queue.qsize():返回当前队列包含的消息数量;Queue.empty():如果队列为空,返回True,反之False ;Queue.full():如果队列满了,返回True,反之False;Queue.get():获取队列中的一条消息,然后将其从列队中移除,可传参超时时长。Queue.get_nowait():相当Queue.get(False),取不到值时触发异...原创 2018-04-07 23:13:37 · 213 阅读 · 0 评论 -
Python的多进程
套路1:os.fork()先敲段代码:#!/usr/bin/env python3import osos.fork()print('1111111111')执行结果:11111111111111111111fork函数一旦运行就会生出一条新的进程,2个进程一起执行导致输出了2行。再敲段代码:#!/usr/bin/env python3import osimport timer...原创 2018-04-07 23:12:49 · 262 阅读 · 0 评论 -
pip更新问题
//pip更新问题使用pip install -U numpy 更新numpy后用pip list | grep numpy查看pip管理的numpy版本,显示为numpy (1.9.0)。但在终端启动python执行全选复制放进笔记>>> import numpy>>> print numpy.__version__1.6.0原创 2016-06-04 10:08:36 · 611 阅读 · 0 评论 -
【Python】考虑用生成器改写直接返回列表的函数
使用生成器的好处是显而易见的,可以使代码更加清晰,同时减小内存的消耗,当函数需要返回列表,把函数改写为生成器是相对容易的。下面这两个函数返回字符串中每个单词的索引: 1 def index_words1(text): 2 result = [] 3 if text: 4 result.append(0) 5 for index, letter in ...原创 2018-04-08 16:52:54 · 250 阅读 · 0 评论 -
python 入门-练习题
题意:找出数组numbers中的两个数,它们的和为给定的一个数target,并返回这两个数的索引,注意这里的索引不是数组下标,而是数组下标加1。比如numbers={2,7,11,17}; target=9。那么返回一个元组(1,2)。这道题不需要去重,对于每一个target输入,只有一组解,索引要按照大小顺序排列。 Given an array of integers, find two num...原创 2018-04-14 21:43:15 · 172 阅读 · 0 评论 -
Python-Url编码和解码
Python-Url编码和解码一、为什么要进行Url编码url带参数的请求格式为(举例): http://www.baidu.com/s?k1=v1&k2=v2当请求数据为字典data = {k1:v1, k2:v2},且参数中包含中文或者?、=等特殊符号时,通过url编码,将data转化为特定格式k1=v1&k2=v2,并且将中文和特殊符号进行编码,避免发生歧义 二、Url编码1...原创 2018-04-10 09:41:15 · 1057 阅读 · 0 评论 -
virtualenv介绍及基本使用
virtualenv介绍及基本使用1.virtualenv介绍2.安装virtualenv3.virtualenv运行使用4.virtualenv其他命令综合1.virtualenv介绍在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突,而virtualenv就是解决这种情况的,virtualenv通过创建一个虚拟...原创 2018-05-04 17:27:36 · 363 阅读 · 0 评论 -
数据标准化/归一化normalization
http://blog.csdn.net/pipisorry/article/details/52247379这里主要讲连续型特征归一化的常用方法。离散参考[数据预处理:独热编码(One-Hot Encoding)]。基础知识参考:[均值、方差与协方差矩阵 ][矩阵论:向量范数和矩阵范数 ]数据的标准化(normalization)和归一化 数据的标准化(normalization)是将数据...原创 2018-05-03 15:43:27 · 2518 阅读 · 0 评论 -
今天安装 fackbook下面的时间序列模型 prophet
由于工作需要,所以在linux下安装 prophet,本来按照网上的要求安装时很简单的。但是由于公司的linux系统不能联网故而比较麻烦,需要自己下载安装包。 重点是prophet需要带可视化界面才可以运行。但是公司linux根本就不带可视化界面,这可咋办。一直找了很久,很久,终于找到一个在 python pypi 里找到了 fbprophet-headless ,它可以在没有可视化...原创 2018-05-02 22:53:34 · 834 阅读 · 0 评论 -
Scrapy的spider_middlewares和downloader_middlewares区别是什么?
crapy的spider_middlewares和downloader_middlewares区别是什么?分别在什么场景使用?2016年07月24日提问评论邀请回答编辑1 个回答答案对人有帮助,有参考价值1答案没帮助,是错误的答案,答非所问下载器中间件(Downloader middlewares)下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传...原创 2018-04-18 21:29:01 · 3093 阅读 · 0 评论