Streamlit 库:Python 数据科学和机器学习工程师的 Web 应用开发工具

Python 的 Streamlit 库是一款专为数据科学家和机器学习工程师设计的开源 Web 应用开发工具。它允许用户使用纯 Python 代码创建交互式的、数据驱动的 Web 应用程序,无需具备 Web 开发技能(如 HTML、CSS、JavaScript)。Streamlit 库简化了从数据探索、模型训练到结果呈现的全过程,使得数据专业人士能够迅速将他们的工作成果转化为直观、易于理解的 Web 界面,便于分享给同事、客户或公众。以下是 Streamlit 库的主要特性和使用要点:

主要特性

  1. Python-first:
  • 采用 Python 语言编写应用程序逻辑,无需学习额外的模板语言或前端框架。
  • 支持直接使用 Pandas DataFrames、Numpy 数组、Matplotlib 图形、Plotly 图表等数据科学库的输出。
  1. 交互性:
  • 内置丰富的交互组件,如滑块、多选框、输入框、按钮、日期选择器等,支持用户与应用进行动态交互。
  • 支持实时更新应用状态,当用户改变输入或触发操作时,应用能够立即响应并更新界面。
  1. 数据可视化:
  • 集成 Matplotlib、Seaborn、Plotly、Altair 等可视化库,方便在应用中嵌入各种图表和图形。
  • 支持自定义 HTML、SVG 或 iFrame,插入更复杂的可视化组件或第三方服务。
  1. 模块化与复用:
  • 应用可以分解为多个独立的 Streamlit 组件,便于代码组织和模块复用。
  • 支持使用 Streamlit Components 进一步扩展库的功能,引入社区贡献的自定义组件。
  1. 部署便捷:
  • 可以通过 streamlit run app.py 命令一键启动本地开发服务器,实时预览应用。
  • 支持一键部署到 Heroku、Google Cloud Platform、Amazon Web Services (AWS) 等云平台。

基本使用流程

安装

pip install streamlit

编写应用

  • 创建一个 Python 脚本(如 app.py),使用 Streamlit API 编写应用逻辑。
  • 使用 st.* 函数(如 st.write、st.pyplot、st.map、st.checkbox 等)构建界面元素。

运行应用

streamlit run app.py

浏览器自动打开应用界面,根据脚本内容实时更新。

关键 API 示例

写入文本

st.write("Hello, Streamlit!")

展示 DataFrame

import pandas as pd
df = pd.read_csv('data.csv')
st.dataframe(df)

绘制 Plotly 图表

import plotly.express as px
fig = px.scatter(df, x='feature1', y='feature2', color='category')
st.plotly_chart(fig)

添加交互组件

show_advanced = st.checkbox("Show advanced options")
if show_advanced:
    st.text("Advanced content appears when the checkbox is checked.")

创建页面布局

col1, col2 = st.columns(2)
with col1:
    st.metric("Revenue", "$12,345")
with col2:
    st.metric("Profit", "$5,432")

进阶功能

状态管理

  • 使用 st.session_state 访问和存储用户交互产生的状态信息,实现跨页面或跨组件的状态共享。

缓存

  • 使用 @st.cache 装饰器对耗时计算或数据加载进行缓存,提高应用性能。

主题定制

  • 通过 st.set_page_config(layout=”wide”, page_icon=”…”, initial_sidebar_state=”…”) 设置应用布局、图标和侧边栏状态。
  • 使用 CSS 代码自定义应用样式。

部署

本地部署

  • 仅需持续运行 streamlit run app.py 命令即可在本地访问应用。

云部署

  • 利用 Streamlit Sharing(官方免费托管服务)一键部署公开应用。
  • 将应用部署到 Heroku、GCP、AWS 等云平台,根据需要配置环境、设置访问权限。

总之,Python 的 Streamlit 库极大地降低了数据专业人士创建 Web 应用的门槛,使得他们能够专注于数据处理和模型开发,同时快速构建出具有专业水准、交互性强的 Web 界面,有效提升数据产品的交付效率和用户体验。


存档地址:https://www.yuque.com/worthstudy/study/hcs323fraysrqq4w?singleDoc# 《Streamlit库》

© 版权声明
THE END
喜欢就点赞支持一下吧,如果觉得不错或日后有所需要,可以收藏文章和关注作者哦。
点赞0打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容