↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过
Datawhale干货
作者:杨剑砺,Datawhale成员,数据分析师
很多数据科学工作者都存在这样一个痛点,由于没有能点亮网页前端的技能树,导致在项目展示或项目合作时,无法快速开发出这样一套用户界面以供使用。而今天要介绍的Streamlit正是为了应对这一痛点而生的。Streamlit是一个机器学习工程师专用的,专门针对机器学习和数据科学团队的应用开发框架,是目前开发自定义机器学习工具的最快的方法。可以认为它的目标是取代Flask在机器学习项目中的地位,可以帮助机器学习工程师快速开发用户交互工具。
本文目录:
1. Streamlit是什么 2. 如何开始一个Streamlit项目 3. Streamlit架构与设计初探
-
APP模型
网页布局
4. 常用工具总结
-
显示文本
显示数据
显示交互控件
显示图表
其他工具
侧边栏
5. 重要功能
-
缓存机制
录屏功能
6. 近期重大更新
7. 优秀demo
-
自动驾驶目标检测
GAN面部生成项目
一、Streamlit是什么?
Streamlit是一个强大的python开源工具包,可以用来快速搭建web app,以优雅地展示你的机器学习或数据科学项目。
Streamlit的优势在于:
不需要任何网页前端设计基础即可轻松搭建web app
由于web本身会随着代码块自动刷新,写程序时可以及时观察到每一步代码改动对于网页的显示效果影响,方便调试
交互式界面可以优雅地展示数据科学项目
streamlit的代码框架遵循从上到下的运行逻辑,极易理解,所见即所得
二、如何开始一个Streamlit项目
在安装streamlit之前,需要注意python版本至少为3.6。使用pip安装streamlit库
$ pip install streamlit
在python脚本中导入包
import streamlit as st
启动一个streamlit app有两种方式(命令行)。
1)直接运行本地的python文件
$ streamlit run myapp.py
2)运行远程url,这个功能可以直接运行github中的链接
$ streamlit run https://raw.githubusercontent.com/streamlit/demo-uber-nyc-pickups/master/app.py
可以尝试运行以下命令启动官网提供的demo项目
$ streamlit hello
三、Streamlit架构与设计初探
在开始介绍streamlit提供的诸多小工具之前,需要简单介绍下streamlit的架构和布局设计思路。
3.1 APP模型
下图为官网展示的app模型架构图,一个streamlit app是这样工作的:
streamlit会将python脚本按顺序从上往下运行
每次用户打开指向该app服务的网页时,整个脚本会被重新执行
在脚本运行的过程中,streamlit会将数据表,图像,控件等实时地显示在网页上
在运行过程中,streamlit会优先调用缓存(需要用户在程序中设置)避免高昂计算过程
每次用户和控件进行交互时,脚本会被重新执行,图像,控件等被重新显示为新的值