Dask教程
Dask 介绍
Dask是一款用于分析计算的灵活并行计算库。
Dask由两部分组成:
针对计算优化的动态任务调度。这与Airflow,Luigi,Celery或Make类似,但针对交互式计算工作负载进行了优化。
“大数据”集合, 像并行数组,数据框和列表一样,它们将通用接口(如NumPy,Pandas或Python迭代器)扩展到大于内存或分布式环境。 这些并行集合运行在动态任务调度器之上。
Dask 安装
在配置好 pip 的环境下安装,只需要命令
pip install dask
即可安装完成Dask的核心部分。而且非常小,才 1MB
但是如果需要用到比较多的功能的话,还是建议装完整版本
pip install dask[complete]
这里还要注意一个坑,dask的有一些库要求的python
版本 > 2.7.8 或者 3.4——版本过低容易被坑
Dask简单使用:
Dask用例大致可以分为以下两类:
大型NumPy / Pandas /使用dask.array,dask.dataframe,dask.bag列出来分析具有熟悉技术的大型数据集。这与Databases,Spark或大型数组库类似。
自定义任务计划。您提交了一个相互依赖于自定义工作负载的函数图。这与Luigi,Airflow,Celery或Makefiles类似。
今天的大多数人都认为Dask假设它是一个像Spark这样的框架,它围绕着大量统一形状数据集合的第一个用例而设计。然而,许多更高效和新颖的用例属于第二类,使用Dask来并行化定制工作流程。
Dask计算环境可以分为以下两类:
- 带有线程或进程的单机并行:Dask单机调度程序利用笔记本电脑或大型工作站的全部CPU功率,并将空间限制从“适合内存”更改为“适合磁盘”。这个调度程序使用简单,没有大多数“大数据”系统的计算或概念开销。
- 多节点上的分布式集群并行:Dask分布式调度程序协调集群中多台机器的操作。它可以在任何地方从一台机器扩展到一千台机器,但不会超越其他机器。
单机调度程序对更多个人有用(更多人拥有个人笔记本电脑,而不是可以访问群集),并且可能占当前使用Dask的80%以上。分布式机器调度程序对大型机构,研究实验室或私人公司很有用。
Dask里面提供了很多库,可以从最普通的 array中入手
第一个hello world的例子:
dask.array的使用:
import dask.array as da
import numpy as np
# 1.example----- HelloWorld
x = np.arange(1000)
print x
y = da.from_array(x, chunks=(100))
print y
print y.mean()
print y.mean().compute()
第二个例子:
产生随机数:
# 2.example
x = da.random.normal(0, 1, size=(100,100), chunks=(10, 10))
a = x.mean().compute()
print a
bag 提供了 map, filter, fold, groupby等操作
# 3.
import dask.bag as db
b = db.from_sequence([1, 2, 3, 4, 5, 6])
print b
c = db.from_sequence([1, 2, 3, 4, 5, 6], npartitions=2)
print c
Dask教程的更多相关文章
- tensorflow 经典教程及案例
导语:本文是TensorFlow实现流行机器学习算法的教程汇集,目标是让读者可以轻松通过清晰简明的案例深入了解 TensorFlow.这些案例适合那些想要实现一些 TensorFlow 案例的初学者. ...
- windows上安装Anaconda和python的教程详解
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
随机推荐
- Gradle Goodness: Running Java Applications from External Dependency
With Gradle we can execute Java applications using the JavaExec task or the javaexec() method. If we ...
- Nodejs中获取参数以及处理参数
先看题干效果 在这里我们建了一个表单 填入表单需要提交的信息 对两个参数进行获取和一个加法计算 表单html代码 <form action='http://localhost:8080' met ...
- python drf+xadmin+react+dva+react-native+sentry+nginx 搭建前后端分离的博客完整平台
前言: 经过差不多半年的开发,搭建从前端到服务器,实现了前后端分离的一个集PC端.移动端的多端应用,实属不易,今天得空,好好写篇文章,记录这些天的成果.同时也做个分享. 演示网站地址: http:// ...
- java中实现多线程的几种方式(简单实现)
一.以下只是简单的实现多线程 1:继承Thread 2:实现 Runnable 3:实现callable 如果需要返回值使用callable,如果不需要返回最好使用runnable,因为继承只能单继承 ...
- Spring的入门学习笔记 (注解)
Spring的bean管理(注解) 注解 1.代码里面特殊标记(ep:@Test),使用注解完成一些相关功能 2.注解写法 @注解名称(属性名称=属性值) 3.可以用在类,方法,属性上都可以 4.Sp ...
- MySQL必知必会 读书笔记四:数据过滤
过滤数据 WHERE 只检索所需数据需要指定搜索条件( search criteria) ,搜索条件也称为过滤条件( filtercondition) . 在SELECT语句中,数据根据WHERE子句 ...
- 关于ajax请求数据的方法
$.ajax({ //课程详情信息 type:'get', data: {'id':courseId}, dataType:'json', beforeSend : ...
- PHP Mysql数据库连接
1,date_default_timezone_set('PRC');//获取北京时区 header("Content-Type:text/html;charset=utf-8&q ...
- JZ2440开发板:用按键点亮LED灯(学习笔记)
本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以 ...
- 传说是小米家的一道面试题难倒了某Java程序员。扑克牌排序问题。
网上说的是有位网友在面试小米Java岗三次后,终于挺进了第三轮面试,结果还是败在了两道算法题上面. 1.写个读方法和写方法,实现读写锁 2.一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆 ...