【思维导图】Python的Joblib库 使您的Python工作更快!

点击图片看大图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Python的Joblib库 使您的Python工作更快!

参考文献
ohttp://www.cnblogs.com/cobbliu/archive/2012/09/04/2670178.html
ohttps://blog.csdn.net/red_stone1/article/details/71156441?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-3-71156441.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449
ohttps://blog.csdn.net/weixin_26711867/article/details/109122421?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-109122421.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449
同类库文件
ocPickle
值得一提的是,pickle 模块及其同类模块 cPickle 向 Python 提供了 pickle 支持。后者是用 C 编码的,它具有更好的性能,对于大多数应用程序,推荐使用该模块。
对于大数据而言,joblib比pickle更加高效,但是joblib只能将对象存储在磁盘文件中,不能保存为字符串。
joblib库的安装
opip install joblib
joblib库的简介
o推荐joblib的原因
Can be easily integrated
可以轻松整合
No specific dependencies
没有特定的依赖
Saves cost and time
节省成本和时间
Easy to learn
简单易学
o定义
Joblib是一组在Python中提供轻量级管道的工具。
Joblib经过了优化,特别是在处理大型数据时速度更快、更健壮,并且对numpy数组进行了特定的优化。
o特点
函数的透明磁盘缓存
延迟重新计算(记忆模式)
简单并行计算
o为什么选择joblib?
1.使用缓存的结果 (1. Using Cached results)
通过缓存来加速管线的超级能力
 使用相同的输入数据可能会多次调用某些功能,并且计算会再次发生。
 Joblib提供了一种更好的避免重复计算相同函数的方法,从而节省了大量时间和计算成本。
2.并行化 (2. Parallelization)
3.转储和加载 (3. Dump and Load)
4.压缩方式(4. Compression methods)
joblib库的使用方法
o1、输出值的透明快速磁盘缓存
Python函数的类似memoize或make的功能,适用于任意Python对象,包括非常大的numpy数组。通过将操作写成一组具有定义良好的输入和输出的步骤,将持久性和流执行逻辑与域逻辑或算法代码分离开来:Python函数。Joblib可以节省他们的计算到磁盘和重新运行,只有在必要时:
>>> from joblib import Memory>>> cachedir = ‘your_cache_dir_goes_here’>>> mem = Memory(cachedir)>>> import numpy as np>>> a = np.vander(np.arange(3)).astype(np.float)>>> square = mem.cache(np.square)>>> b = square(a)
[Memory] Calling square…
square(array([[0., 0., 1.],
 [1., 1., 1.],
 [4., 2., 1.]]))
>>> c = square(a)
>>> # The above call did not trigger an evaluation
o2、高度并行助手:使它容易编写可读并行代码和调试它迅速
>>> from joblib import Parallel, delayed
parallel
delayed
>>> from math import sqrt
>>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
为了使用多线程,只需在构造Parallel的时候设置backend='threading’即可:
oParallel(n_jobs=2, backend=“threading”)( … delayed(sqrt)(i ** 2) for i in range(10))
output
[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
o3、快速压缩持久化
替代pickle,有效地处理包含大数据的Python对象(joblib)。转储& joblib。负载)。

参考文献:

  1. http://www.cnblogs.com/cobbliu/archive/2012/09/04/2670178.html
  2. https://blog.csdn.net/red_stone1/article/details/71156441?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-3-71156441.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449
  3. https://blog.csdn.net/weixin_26711867/article/details/109122421?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-109122421.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神经美学_茂森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值