Ray 学习笔记,Holoviews (一)

本系列是作者用 python 学习 Ray 框架的笔记。 Ray 是 UC berkley 提出的分布式机器学习。sklearn 是运行在单机上的机器学习,虽然支持多线程,但分布式并不支持。学习分布式机器学习,为什么学习图形展示呢?就像最初学习机器学习,我们学习 matplotlib一样,通过图形我们可以直观地做分析,学习ray的第一门课是学习holoviews,holoviews不是重起炉灶,而是建立在python图形模块之上的,在原有图像模块上面铺了一层代码,使得图像更有交互性。我们会分几期讲解,这篇博客旨在介绍一下最基本的知识。因为一时可能写不全,所以会在博客末尾添加每次更新日期。

1.  铺垫

Holoviews 的官方网站是https://holoviews.org/index.html,github的地址是 https://github.com/holoviz/holoviews,从github地址,用户可以下载项目的zip文件,zip文件的example/assets/ 目录下有供学习的原始数据。学习图形模块,自然要有jupyter开发调试环境,笔者将尽快撰写在centos 8的基础上,怎样建立jupyter的开发环境。holoviews最好的简介是英文的: https://holoviews.org/getting_started/Introduction.html

2.  基本介绍

使用holoviews,当然要有bokeh 和 matplotlib 两个模块,在同一个程序中,holoviews可以一会儿用bokeh,一会儿用 matplotlib,只要明确说明就可以。另外,属性名也是跟着底层bokeh和matplotlib来的,比如开发者用kobeh为后台模块时,要用属性名 line_width,用matplotlib为后台模块时,属性名是lineWidth,一个是有下划线,一个是没有下划线。使用哪个模块为后台模块,只要明确说明就是了。  

3. 实战: 基本命令 

开始使用holoviews,当然要import,简单范例如下:

import holoviews as hv
import numpy as np
from holoviews import opts
hv.extension('bokeh')


bounds = (0,0,3,3)
demoArray1 = np.array([[0,0,0],[1,1,1]],float)
print("demoArray1 is:{0}".format(demoArray1))
hvImage1 = hv.Image(demoArray1,["hvImage1:x","y"],bounds=bounds)

demoArray2 = np.array([[0,0,0],[1,2,3]],float)
print("demoArray2 is:{0}".format(demoArray2))
hvImage2 = hv.Image(demoArray2,["hvImage2:x","y"],bounds=bounds)

demoArray3 = np.array([[0,0,0],[1,1,1],[2,2,2]],float)
print("demoArray3 is:{0}".format(demoArray3))
hvImage3 = hv.Image(demoArray3,["hvImage3:x","y"],bounds=bounds)
hvImage1 + hvImage2 + hvImage3

hvImages

对于holoviews的绘图,我们后续还会再介绍。先介绍最简单的绘图方式,输入就是数组。第一个图 hvImage1,有两行(x轴),三列(y轴),第一行都是0,第二行都是1。即

[ [0. 0. 0.]
  [1. 1. 1.]]

holcoviews 是一行一行绘图,从上至下。

  1. 首先,bounds 前两位是 左下点,后两点是右上点。限定范围后,第一个图hvImage1 因为是2行,y轴一分为二,上面浅色,是代表0,下面是1,蓝色。因为每行的列是相同的,所以横向上的颜色是一致的。
  2. 第2个图hvImage2,也是2行3列,但第2行,每一列是不同的,因为x轴范围是0-3,所以3等分,0-1,1-2,2-3正好代表一列。3种颜色代表3列。
  3. 第3个图hvImages,是3行3列,但列的数值都是相同的,所以x 轴方向上,颜色是相同的。因为是3行,y轴范围是0-3,所以3等分,0-1,1-2,2-3正好代表每一行。3种颜色代表3列。
  4. 红框标记的,是holoviews的最基本特色,可以移动图像,放大图像,保存图像,重置图像等等实用功能。,

如果范围不变,增加行数和列数,那么视觉效果上就是一个点。点数越多,图像就各型各异。后续的博客会介绍一下更复杂的holoviews绘图,特别是数据交互式的绘图,这可能是holoviews值得学习的特色。本博客只是介绍基础知识。

4. 其他:

本博客最初创建日期是2021年4月1日。 

有错请评论区指正。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值