- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
最近,我在数据分析的一些任务中尝试了闻名已久的Streamlit,再一次感受到Python的强大之处.
于是,准备根据自己的掌握情况,写一个介绍Streamlit的系列.
本文作为第一篇, 先介绍介绍Streamlit是什么,以及它和Jupyter和传统Web应用的区别.
Streamlit是一个用于快速构建数据科学和机器学习应用程序的Python库, 。
使用Streamlit,我们可以使用简单的Python代码来创建交互式和可视化的应用,无需深入掌握前端技术或编写大量的底层代码.
Streamlit的发展历史可以追溯至2019年10月,当时Streamlit是作为一个专门针对机器学习和数据科学的应用开发框架而发布的.
刚开始的设计目标是取代Flask在机器学习项目中的地位,帮助机器学习工程师快速开发用户交互工具.
Streamlit的核心理念是“Scriptability”,即用户只需编写简单的Python脚本,就可以构建出一个完整的应用程序.
所以,Streamlit中封装了大量的交互式组件,支持表格、图表、数据表等对象的渲染,并具备栅格化响应式布局能力.
随后,Streamlit逐渐发展并受到数据科学社区的广泛关注.
其开源的性质和简洁高效的设计哲学受到越来越多的数据科学家和开发者的喜爱,他们使用Streamlit创建和分享各种美观的、交互式的Web应用.
Streamlit也开始支持越来越多的数据可视化库,如Matplotlib、Plotly和Altair等,使得在应用中集成丰富的图表和视觉化元素变得非常简单.
值得一提的是,Streamlit在发展过程中还经历了被Snowflake收购的重要事件, 。
这一收购进一步推动了Streamlit在数据科学和机器学习领域的应用和发展.
对我来说,使用Streamlit最大的好处是,只要会Python就能构建一个漂亮的交互式应用, 。
不需要再陷入编写前端时,为了调整一个样式折腾半天的痛苦.
以我自己的使用经验,Streamlit主要用在两个地方.
其一是在数据分析和机器学习项目的早期,使用Streamlit快速构建一个应用来探索项目中的各种可能性.
也可以用来做项目的原型,这比做静态原型要好很多,一方面可以轻易的实现各种交互, 。
另一方面,其中的图表组件可以将结果动态展示出来,更好的给客户演示项目可能的效果.
另一个可以使用的地方是教学演示,比如想做线上课程时,它可以让讲师轻松地将复杂的数据转化为直观的图表和图像,帮助学员更好地理解数据和背后的知识.
同时,Streamlit的交互式特性允许学员在界面上进行实时操作和探索,这大大增强了学习的参与度和互动性.
此外,Streamlit还支持多种数据科学库和工具的集成,使得讲师可以根据教学需求自由选择和组合不同的工具,进一步丰富教学内容和形式.
对于用户量有一定规模的应用,比如需要认证,权限以及其他业务功能时,不建议使用Streamlit.
毕竟,传统的前后端开发方式还是更容易应对业务的频繁变更,也利于多人协作开发.
使用Streamlit之前,我在项目早期用的比较多的是Jupyter notebook.
Jupyter也是交互式的,可以一边编码一边看结果,还可以结合markdown写一些说明文档.
使用之后,我感觉两者之间的区别主要有:
Streamlit提供简洁的用户界面,其中可以轻松添加各种控件(如按钮、滑块等).
而Jupyter是以笔记本形式组织代码、文本和可视化输出。支持代码块的即时执行和结果展示.
相比之下,Jupyter是以代码的形式分享,更适合自己尝试各种数据分析的路径,以及在开发人员之间分享.
Streamlit以应用的形式分享,不需要了解代码,可以直接操作界面,更适合给客户分享.
Streamlit内置了丰富的可视化组件,支持多种图表类型和交互式数据展示,可以轻松地将数据分析结果以图表形式呈现给用户.
Jupyter需要通过代码块生成各种可视化图表,通常是导入其他第三方库(如matplotlib、seaborn等)来帮助实现。其可视化能力很大程度依赖于所使用的库和开发者的编程技能.
相比之下,Streamlit对开发者的编程技能要求更低一些,因为使用内置封装好的组件比直接使用第三方可视化库要简单很多.
Streamlit本身就是纯粹的Python代码文件,所以可以很轻松地将现有的Python代码转集成到Streamlit应用中,并通过添加控件和可视化组件来增强应用功能.
Jupyter是以笔记形式组织的代码块,并不是纯粹的Python代码,代码的复用和扩展更多依赖于代码块的组合和笔记本的编辑,需要考虑更多.
相比之下,Streamlit扩展更加简单,功能复杂度提高之后,封装一些通用功能,布局代码结构也更加直观.
Streamlit功能是介于Jupyter和传统Web应用之间的,比Jupyter强但是比传统Web应用弱.
最近没怎么做过数据分析和机器学习相关的Web应用了,对于两者的比较可能会考虑不周.
Streamlit的交互性上一节已经提过,传统Web应用的交互性无需多说,几乎是没有上限的,看看现在互联网上各式各样的Web应用就知道了.
不过,对于专注于数据分析和机器学习方面的开发人员来说, 。
传统Web应用的开发过于困难,不仅需要掌握多种技术和工具,还需要编写大量的前端和后端代码,以及进行复杂的调试和测试.
上一节提到的其他两点,可视化能力和扩展性.
传统Web应用能做到的也肯定比Streamlit强,Web应用发展这么多年, 。
尤其是近些年前端的飞速发展,Web应用既可以做各种复杂的游戏,也可以做业务复杂的电子商务平台等等.
问题仍然在于开发的困难程度,选择的时候得看你的应用有多复杂,你的团队是否能够覆盖开发Web应用所需要的各类技术.
总的来说,Streamlit,Jupyter和传统的Web应用三者各有适合的应用场景,并不是某一种可以完全取代另一种.
具体如何选择可以参考下图:
对于专注于数据分析和机器学习方向的个人或者学生来说,Streamlit绝对值得一试.
最后此篇关于什么是Streamlit的文章就讲到这里了,如果你想了解更多关于什么是Streamlit的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
当我尝试将 streamlit 部署到 heroku 时,出现以下错误。我该如何解决? 没有名为 streamlit.main 的模块; ‘streamlit’是一个包,不能直接执行 最佳答案 我试过
我正在使用带有 streamlit 的简单 ML 模型。它在 conda 环境中的本地机器上运行良好,但当我尝试将其部署到 share.streamlit.io 时,它显示错误安装要求。 错误信息如下
我想使用 docker 来容器化 nginx、fastapi 和 2 个 streamlit 应用程序。所有 3 个应用程序(fastapi、2streamlit 应用程序)都不会相互交互。 Ngin
Is there a way in Streamlit to:Streamlight中是否有方法: Select text in a text area选择文本区域中的文本 Cl
我正在尝试从同一目录中的本地系统上传图像。上传后,当我通过打开的 cv 拆分和合并 b、g 和 r 颜色时,我收到错误 ValueError:没有足够的值来解压(预期 3,得到 0) 错误: 这是显示
我想创建一个简单的流线型应用程序,当您按下按钮时,它会增加 x 并显示 x 的新值。 但是,它仅适用于第一次“x 仅显示值 2 且不增加” import streamlit as st x = 1 i
我一直在尝试使用 streamlit 创建一个网络仪表板。运行一个片段后的错误是,“There are multiple identical st.button widgets with the sa
我使用 2 个不同的 radio 选项来执行不同的任务。我想从一捕获图像,然后稍后在选项 2 中执行一些操作。当我在 my_image(在选项 1 中)中存储一帧后尝试将单选选项更改为 2 时,出现s
有谁知道我是否可以使用 streamlit_chat 消息在 Streamlit 中显示类似 chatgpt 的流响应? 我需要类似 message(streaming=True) 或任何其他替代方案
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
有谁知道我是否可以使用 streamlit_chat 消息在 Streamlit 中显示类似 chatgpt 的流响应? 我需要类似 message(streaming=True) 或任何其他替代方案
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
我正在用子图绘制图像,它在 Jupyter(或“纯 python”)和 Streamlit 中看起来不同。 例如,如果我有一个只有1 张图像 的(2 x 2) 子图,它将在 Streamlit 中被拉
嗨,过去几天我一直在尝试在 azure 中部署 Streamlit 应用程序。一个简单的应用程序,例如 import streamlit as st def main(): st.wr
我是 Streamlit 的新手。我想进行多项选择用户输入(复选框)。但我想从 4 个选项中最多选择 3 个选项。 我已经尝试过 multiselect 的下拉功能. import streamlit
我的应用程序中有一个按钮,我想在用户单击它时设置它的样式。问题在于,因为 Streamlit 不允许我们向我们创建的对象发布类,所以我需要找到一种方法来以稳健且与版本无关的方式指定确切的按钮。这是按钮
我正在处理一个机器学习项目,我想(相对)实时地显示具有适应度函数的图表。 我正在使用 this SO answer 中的代码只要图表显示在 matplotlib 窗口中,它就可以正常工作。一旦我将其添
我的应用程序中有一个按钮,我想在用户单击它时设置它的样式。问题在于,因为 Streamlit 不允许我们向我们创建的对象发布类,所以我需要找到一种方法来以稳健且与版本无关的方式指定确切的按钮。这是按钮
我正在尝试使用 启动 Streamlit 应用程序 import os os.popen("streamlit run stockXchange.py") 当我运行这段代码时,会出现无限多的流光窗口,
全部, 我以前成功使用过多选,但是当我尝试这个我作为 POC 尝试的特定示例时,行为非常奇怪。本质上,我想要做的是使用多选让应用程序在中间步骤等待用户输入。但是,multiselect 不会等我选择我
我是一名优秀的程序员,十分优秀!