自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 【Python】JupyterNotebook魔法 - 计时性能测试(%%time %time %timeit)

对于计时有两个十分有用的魔法命令:%%time 和 %timeit。 1.%%time 将会给出cell的代码运行一次所花费的时间。 %time [x for x in range(1000)] Wall time: 0 ns Out[22]: [0, 1, 2, 3, 4, 5, 6, 7, ...

2019-06-27 15:35:30 3891 1

原创 【python】详解使用configparser进行文件配置

        将代码中的配置项抽取到配置文件中,修改配置时不需要涉及到代码修改,这样就提高了代码的重用性,不再每次都去修改代码内部,极大的方便后期软件的维护。         configparser解析的配置文件...

2019-06-23 16:47:52 657 0

原创 【Python】详解pandas的isin索引和~反向索引

       有的时候会经常遇到条件过滤的场景,这个时候可能经常使用isin或者是~来进行一步操作,而不是写条件语句的方式,这样来提高效率和简洁度。 1、直接根据条件进行索引,isin()接受一个列表,判断该列中元素是否在列表中...

2019-05-09 19:30:34 3588 0

原创 【python】详解copy浅复制和deepcopy深复制、字典类型的copy以及" = "

       关于copy()和deepcopy(),以及变量的赋值,不经意使用会出现错误,而且这种错误很隐蔽,逻辑上不容易看出来bug。因此我们最好使用copy和deepcopy来精细声明处理。那么这两个拷贝的区别在哪里,先看...

2019-05-05 09:39:20 1446 1

原创 【Python】详解@property装饰器的使用

在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成...

2019-03-19 18:01:45 510 0

原创 【python】详解multiprocessing多进程-总结(五)

由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并...

2019-01-21 10:30:25 2436 0

原创 【python】详解multiprocessing多进程-Lock、Rlock进程同步(四)

       对于多进程multi...

2019-01-04 21:26:17 3435 0

原创 【python】详解multiprocessing多进程-Queue、Pipe进程间通信(三)

       之前专门写过queue这个库的使用,详见文章:详解queue队列(一),此处的队列与原文基本上相近。当使用多个进程时...

2019-01-04 20:28:02 6638 0

原创 【python】详解multiprocessing多进程-Pool进程池模块(二)

       Multiproce...

2019-01-04 19:37:53 16877 5

原创 【python】详解multiprocessing多进程-process模块(一)

       multiprocessing类似于threading模块支持生成进程的包,是Python的标准模块,它既可以用来编...

2019-01-04 17:28:03 9667 1

原创 【python】numpy实现rolling滚动的方法

相比较pandas,numpy并没有很直接的rolling方法,但是numpy 有一个技巧可以让NumPy在C代码内部执行这种循环。这是通过添加一个与窗口大小相同的额外尺寸和适当的步幅来实现的。 import numpy as np data = np.arange(20) def rolli...

2018-12-05 17:48:49 7702 1

原创 【python】详解pandas.DataFrame.resample根据时间分别聚合多列数据(二)

how真的很好用啊!!! import pandas as pd data = pd.DataFrame({'open':[1,2,3,4,5],'close':[2,3,4,5,6]},index = pd.date_range('12/12/...

2018-12-05 17:39:55 2591 0

原创 【pytho】3以上版本使用pickle.load读取文件报UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6

python 3以上版本使用pickle.load读取文件报UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xdb in position 2: ordinal not in range(128) 只需要在打开的时候指定编码: encodi...

2018-12-04 18:05:25 1658 1

原创 【python】详解numpy.vectorize的使用,将函数向量化

首先看一下文档: numpy.vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, signature=None) Parameters: pyfunc :python函数或方法 otypes : 输出数据类型...

2018-12-03 18:26:09 14461 0

原创 【python】详解pandas.DataFrame.resample根据时间聚合采样(一)

首先我们直接看官方的文档: DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start', kind=None, ...

2018-12-03 17:33:35 12314 0

原创 【python】插入排序和希尔排序

插入排序法类似打牌时候摸扑克牌整理顺序的过程,逻辑如下: 在第i轮通过列表的时候(i从1到n-1),第i项应该插入到列表的前i个项中的正确位置; 在第i轮之后,前i个项应该是排好序的; def insertion_sort(x): i = 1 while i < le...

2018-11-29 16:45:26 113 0

原创 【python】双向冒泡排序

冒泡排序法: 冒泡排序存在所谓的“乌龟问题”,假设我们需要将序列按照升序排序。 序列中的较小的数字又大量存在于序列的尾部,这样会让小数字在向前移动得很缓慢, 因此针对这一问题,产生了双向冒泡排序法,也称鸡尾酒排序法。 双向冒泡排序法: 由两个方向同时进行冒泡: 首先由左向右为大元素移动方向,...

2018-11-29 16:42:55 449 0

原创 【python】冒泡排序

冒泡排序: 从列表的开头处开始,逐个比较一对数据项,如果顺序不对就交换两项位置,直到移动到列表的末尾。 这个过程的效果就是将最大的项以冒泡的方式排到算法的末尾。 然后算法从列表开头到倒数第二项重复这一过程,依次类推。 与简单选择排序的比较: 冒泡排序也是一个嵌套的循环,如果列表是已经排好序的...

2018-11-29 16:41:24 133 0

原创 【python】选择排序算法

排序算法的逻辑非常简单: 首先搜索整个列表,找到最小项的位置,如果该位置不是列表的第1项,就交换这两个位置的元素。 然后从列表的第2个元素开始,重复上述过程,直到算法达到整个过程的最后一个位置. 循环复杂度: 函数包括一个嵌套的循环,对于大小为n的列表,外围的循环执行n-1次; 内部循环的次...

2018-11-29 16:39:15 130 0

原创 【python】选择排序法改进

选择排序法改进思路: 如果每轮只找最小值,效率较低,可以考虑每次同时寻找最小值和最大值; 并且在某一轮如果最小值与最大值相同,说明剩下的数字都相同,可以直接结束。 实现逻辑: 与选择排序不同的是,需要考虑到如果第i轮里,恰好第i个数就是最大值时 先交换minindex和i之后,最大值的下标变...

2018-11-29 16:36:47 237 0

原创 【python】详解threading模块:local类的使用(六)

一般我们对多线程中的全局变量都会加锁处理,这种变量是共享变量,每个线程都可以读写变量,为了保持同步我们会做枷锁处理。 但是有些变量初始化以后,我们只想让他们在每个线程中一直存在,相当于一个线程内的共享变量,线程之间又是隔离的。 python threading模块中就提供了这么一个类,叫做loca...

2018-11-28 18:21:58 638 0

原创 【python】详解threading模块:timer类的使用(五)

Timer(定时器)是Thread的派生类,用于在指定时间后调用一个方法。Timer从Thread派生,没有增加实例方法。 函数:Timer(interval, function, args=[ ], kwargs={ }) interval: 指定的时间 function: 要执行的方法 ar...

2018-11-28 18:07:59 5993 0

原创 【python】详解threading模块:Event类的使用(四)

在上一篇文章中【python】详解threading模块:Condition类的使用(三),详细解释了condition类的使用,可以进行线程之间的通,通过threading.Condition的notify方法实现。threading模块提供Event类实现线程之间的通信。 很多时候,线程之间会...

2018-11-28 17:48:28 3067 0

原创 【python】详解threading模块:Condition类的使用(三)

在上文详解threading模块:lock、Rlock的使用(二)详细介绍了互斥锁,但是互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持。 Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了...

2018-11-28 17:23:43 3445 4

原创 【python】详解pandas.DataFrame.plot( ) 中参数secondary_y实现双坐标轴使用

首先看官网的DataFrame.plot( )函数 secondary_y : boolean or sequence, default False # 可以是布尔值或者是数列 Whether to plot on the secondary y-axis If a lis...

2018-11-19 12:59:48 8317 0

原创 【python】详解事件驱动event实现

所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出)。 脚本型:脚本型的程序包括最早的批处理文件以及使用Python做交易策略回测等等,这类程序的特点是在用户启动后会按照编程时设计好的步骤一步步运行,所有步骤运行完后自动退出。 连续运行型:连续运行型的程序包含了...

2018-11-13 17:36:15 7847 2

原创 【python】详解queue队列(一)

一、队列的定义 队列类似于一条管道,元素先进先出,进put(arg),取get( )。需要注意的是:队列都是在内存中操作,进程退出,队列清空,另外,队列也是一个阻塞的形态。 二、队列分类 队列有很多种,但都依赖模块queue 队列方式 特点 queue.Queue 先进先出队列 ...

2018-11-13 13:12:40 5323 0

原创 【python】详解collections模块中OrderedDict的使用

很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类OrderedDict,实现了对字典对象中元素的排序。 import collections print("Regular dic...

2018-11-12 15:36:35 8601 4

原创 【python】详解isinstance方法

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型...

2018-10-04 16:53:48 1000 0

原创 【python】详解pandas库的pd.merge_ordered与pd.merge_asof

merge_ordered: 函数允许组合时间序列和其他有序数据。 特别是它有一个可选的fill_method关键字来填充/插入缺失的数据。 import pandas as pd left = pd.DataFrame({'k': ['K0...

2018-10-04 00:21:38 4264 0

原创 【python】详解pandas库的pd.merge函数

pandas.DataFrame.merge pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=Fa...

2018-10-03 22:28:18 75834 2

原创 【python】详解urllib库的操作,requests,error,parse模块

urllib 是python内置的http请求库,内置的主要是以下几个模块: urllib.requests :请求模块 urllib.error :异常处理模块 urllib.parse :url解析模块 urllib.robotparer :robot.txt解析模块 1、u...

2018-10-03 00:14:56 1182 0

原创 【python】详解pymongo库的使用

1、连接mongodb,创建client 传入 ip 值或者 localhost ,端口是27017 import pymongo from pymongo import MongoClient client = MongoClient() #连接到本地 client = MongoC...

2018-09-30 21:03:46 3754 0

原创 【python】详解logging日志模块

最近看了崔庆才的网站,个人认为博主的写的非常的好,本文基于博主的文章Python中logging模块的基本用法进行学习和改造。 1、日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,是很容易排查的。...

2018-09-23 12:13:58 332 0

原创 【python】hasattr( )的用法

hasattr() 函数用于判断对象是否包含对应的属性。 hasattr(object, name) object -- 对象。 name -- 字符串,属性名。 return 如果对象有该属性返回 True,否则返回 False。 实例 class variable: x = 1 ...

2018-09-22 17:02:13 3569 0

原创 【python】详解字典sorted函数(高级篇)

在之前的一篇文章中:根据dict字典的键key或者值value排序,我们用到了sorted 如何进行按照键或者值进行排序,解决了字典的排序问题。本文将进一步详细介绍sorted的强大。 sorted 用于对集合进行排序(这里集合是对可迭代对象的一个统称,他们可以是列表、字典、set、甚至是字符串...

2018-09-14 14:08:20 5677 4

原创 【python】numpy.datetime64( ) 时间和 datetime.datetime 互转

首先定义几个时间变量datetime、Timestamp、numpy.datetime64: import datetime import numpy as np import pandas as pd dt = datetime.datetime(2018, 9, 1) # A strange...

2018-09-14 13:16:59 23186 0

原创 【python】详解异步async库的使用

在学习asyncio之前,先理清楚同步/异步的概念: 同步是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务,顺序执行 异步是和同步相对的,异步是指在处理调用这个事务的之后,不会等待这个事务的处理结果,直接处理第二个事务去了,通过状态、通知、回调来...

2018-09-14 09:52:28 5894 0

原创 【python】详解global全局变量函数

在python的函数使用时,经常会碰到参数定义的问题。如果不声明全局变量,会报错。 count = 1 def cc(): count = count+1 cc() Traceback (most recent call last): File "<...

2018-09-13 17:27:20 2386 0

原创 【python】Spyder环境中导入自定义模块

当前会经常写入自己整理的class类和def函数,这时在Spyder环境中就需要用import调用;如果没有添加路径,会产生报错。那么解决该问题,实质就是如何让自编模块所在的目录加入到python的搜索路径里。 因为导入操作都是执行同样的命令: import xxx,例如: import AA...

2018-09-12 23:56:34 6179 1

提示
确定要删除当前文章?
取消 删除