论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
什么是Streamlit
什么是Streamlit
泉缘泉
论坛元老
|
2024-10-11 11:30:06
|
显示全部楼层
|
阅读模式
楼主
主题
1004
|
帖子
1004
|
积分
3022
近来,我在数据分析的一些任务中尝试了著名已久的Streamlit,再一次感受到Python的强大之处。
于是,预备根据本身的把握情况,写一个先容Streamlit的系列。
本文作为第一篇, 先先容先容Streamlit是什么,以及它和Jupyter和
传统Web应用
的区别。
1. 是什么
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就能构建一个漂亮的交互式应用,
不需要再陷入编写前端时,为了调整一个样式折腾半天的痛楚。
2. 用在哪里
以我本身的使用经验,Streamlit紧张用在两个地方。
其一是在数据分析和机器学习
项目标早期
,使用Streamlit快速构建一个应用来探索项目中的各种可能性。
也可以用来做项目标原型,这比做静态原型要好很多,一方面可以轻易的实现各种交互,
另一方面,其中的图表组件可以将效果动态展示出来,更好的给客户演示项目可能的效果。
另一个可以使用的地方是
教学演示
,比如想做线上课程时,它可以让讲师轻松地将复杂的数据转化为直观的图表和图像,帮助学员更好地明白数据和背后的知识。
同时,Streamlit的交互式特性答应学员在界面上进行实时操作和探索,这大大加强了学习的参与度和互动性。
此外,Streamlit还支持多种数据科学库和工具的集成,使得讲师可以根据教学需求自由选择和组合差别的工具,进一步丰富教学内容和形式。
对于用户量有一定规模的应用,比如需要认证,权限以及其他业务功能时,
不建议
使用Streamlit。
毕竟,传统的前后端开发方式照旧更轻易应对业务的频繁变更,也利于多人协作开发。
3. 与Jupyter相比
使用Streamlit之前,我在项目早期用的比较多的是Jupyter notebook。
Jupyter也是交互式的,可以一边编码一边看效果,还可以结合markdown写一些说明文档。
使用之后,我感觉两者之间的区别紧张有:
3.1. 交互性
Streamlit提供简洁的用户界面,其中可以轻松添加各种控件(如按钮、滑块等)。
而Jupyter是以笔记本形式组织代码、文本和可视化输出。支持代码块的即时实行和效果展示。
相比之下,Jupyter是以代码的形式分享,更得当本身尝试各种数据分析的路径,以及在开发人员之间分享。
Streamlit以应用的形式分享,不需要相识代码,可以直接操作界面,更得当给客户分享。
3.2. 可视化能力
Streamlit内置了丰富的可视化组件,支持多种图表范例和交互式数据展示,可以轻松地将数据分析效果以图表形式出现给用户。
Jupyter需要通过代码块生成各种可视化图表,通常是导入其他第三方库(如matplotlib、seaborn等)来帮助实现。其可视化能力很大水平依赖于所使用的库和开发者的编程技能。
相比之下,Streamlit对开发者的编程技能要求更低一些,因为使用内置封装好的组件比直接使用第三方可视化库要简朴很多。
3.3. 扩展性
Streamlit本身就是纯粹的Python代码文件,所以可以很轻松地将现有的Python代码转集成到Streamlit应用中,并通过添加控件和可视化组件来加强应勤奋能。
Jupyter是以笔记形式组织的代码块,并不是纯粹的Python代码,代码的复用和扩展更多依赖于代码块的组合和笔记本的编辑,需要考虑更多。
相比之下,Streamlit扩展更加简朴,功能复杂度提高之后,封装一些通勤奋能,结构代码结构也更加直观。
4. 与Web应用相比
Streamlit功能是介于Jupyter和传统Web应用之间的,比Jupyter强但是比传统Web应用弱。
近来没怎么做过数据分析和机器学习相关的Web应用了,对于两者的比较可能会考虑不周。
Streamlit的交互性上一节已经提过,
传统Web应用
的交互性无需多说,险些是没有上限的,看看如今互联网上各式各样的Web应用就知道了。
不过,对于专注于数据分析和机器学习方面的开发人员来说,
传统Web应用
的开发过于困难,不但需要把握多种技术和工具,还需要编写大量的前端和后端代码,以及进行复杂的调试和测试。
上一节提到的其他两点,
可视化能力
和
扩展性
。
传统Web应用
能做到的也肯定比Streamlit强,Web应用发展这么多年,
尤其是近些年前端的飞速发展,
Web应用
既可以做各种复杂的游戏,也可以做业务复杂的电子商务平台等等。
问题仍然在于开发的困难水平,选择的时候得看你的应用有多复杂,你的团队是否能够覆盖开发
Web应用
所需要的各类技术。
5. 总结
总的来说,Streamlit,Jupyter和
传统的Web应用
三者各有得当的应用场景,并不是某一种可以完全代替另一种。
具体如何选择可以参考下图:
对于专注于数据分析和机器学习方向的个人大概弟子来说,Streamlit绝对值得一试。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
泉缘泉
论坛元老
这个人很懒什么都没写!
楼主热帖
华为一镜到底主题__荣耀30系列安装教程 ...
日志模块
「Docker入门指北」容器很难理解?带你 ...
数据资产为王,如何解析企业数字化转型 ...
信创环境下分布式文件存储MinIO集群部 ...
28基于java的简单酒店数据管理 ...
xss-labs靶场
Vulnhub之M87靶机详细测试过程(不同提 ...
解决NuGet加载或下载资源慢的问题 ...
前端后端的爱恨情仇
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
前端开发
物联网
SQL-Server
程序人生
容器及微服务
Oracle
网络安全
分布式数据库
MES
快速回复
返回顶部
返回列表