马春杰杰博客
致力于深度学习经验分享!

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

文章目录
[隐藏]

无需了解任何Web框架即可轻松地将您的数据科学项目转换为出色的应用程序

如果我们没有很好的方法来展示机器学习项目,那么它永远不会真正完成。

过去,经过精心制作的可视化效果图或小型PPT足以展示数据科学项目,而随着RShiny和Dash等仪表板工具的出现,优秀的数据科学家需要对Web有一定的了解相处的框架。

Web框架很难学习。我仍然对所有的HTML,CSS和Javascript以及所有的点击和试用感到困惑,因为它们看起来很简单。

更不用说做同一件事的许多方法,这使我们对数据开发人员感到困惑,而Web开发是他们的第二技能。

那么,我们注定要学习网络框架吗?还是在半夜打电话给我们的开发人员朋友,以解决愚蠢的疑问?

这是StreamLit出现的地方,它兑现了仅使用Python创建Web应用程序的承诺。

Python之禅:简单胜于复杂,Streamlit使创建应用变得非常简单。

这篇文章是关于了解如何使用Streamlit创建支持数据科学项目的应用程序。

安装

安装就像运行命令一样简单:

pip install streamlit

要查看我们的安装是否成功,我们可以运行:

streamlit hello

这应该显示一个屏幕,显示:

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

您可以转到本地URL:localhost:8501在浏览器中,查看Streamlit应用程序的运行情况。开发人员提供了一些不错的演示,您可以使用它们。在返回之前,请花点时间并感觉一下工具的功能。

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

Streamlit Hello World

Streamlit旨在使用简单的Python简化应用程序开发。

因此,让我们编写一个简单的应用程序,看看它是否能够兑现承诺。

在这里,我从一个简单的应用程序开始,我们将其称为streamlit的Hello World。只需将下面给出的代码粘贴到一个名为helloworld.py

并且,在终端上运行:

瞧,您应该能够在浏览器中看到一个运行中的简单应用,该应用localhost:8501可让您移动滑块并给出结果。

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

这很容易。在上面的应用程序中,我们使用了Streamlit的两个功能:

  • st.slider我们可以滑动以更改Web应用程序输出的小部件。
  • 以及通用st.write命令。我惊讶于它如何能够从图表,数据框和简单文本中编写任何内容。稍后对此进行更多讨论。

重要提示:请记住,每次更改窗口小部件的值时,整个应用程序都会从​​上到下运行。

Streamlit窗口小部件

小部件为我们提供了一种控制应用程序的方式。了解这些小部件的最佳位置是API参考文档本身,但我将介绍一些最终可能会用到的最突出的小部件。

1.滑块

我们已经st.slider在上面看到了实际操作。它可以与min_value,max_value和step一起使用,以获取一定范围内的输入。

2.文字输入

获取用户输入的最简单方法是一些URL输入或一些用于情感分析的文本输入。它只需要一个标签来命名文本框。

就像这样:

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

提示:您可以更改文件helloworld.py并刷新浏览器。我的工作方式是打开并更改helloworld.py高级文字,并在浏览器中并排查看更改。

3.复选框

复选框的一个用例是隐藏或显示/隐藏应用程序中的特定部分。另一个可能是在函数的参数中设置布尔值。st.checkbox()接受一个参数,即小部件标签。在此应用程序中,该复选框用于切换条件语句。

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

4.选择框

我们可以st.selectbox用来从系列或列表中进行选择。通常,用例是将其用作从列表中选择值的简单下拉列表。

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

5.多重选择

我们还可以从下拉列表中使用多个值。在这里我们st.multiselect用来获取多个值作为变量列表options

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

逐步创建我们的简单应用

对于理解重要的小部件来说,就这么多。现在,我们将一次使用多个小部件创建一个简单的应用程序。

首先,我们将尝试使用streamlit可视化我们的足球数据。在上述小部件的帮助下,执行此操作非常简单。

我们的简单应用程序如下所示:

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

那很简单。但是现在看来,这很基本。我们可以添加一些图表吗?

Streamlit当前支持许多绘图库。包括Plotly,Bokeh,Matplotlib,Altair和Vega图表Plotly Express也可以使用,尽管他们没有在文档中指定。它还具有一些Streamlit原生的内置图表类型,例如st.line_chartst.area_chart

我们将在plotly_express这里工作。这是我们简单应用程序的代码。我们只使用了四个调用来简化。其余都是简单的python。

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

改进之处

首先,我们说过每次更改任何小部件时,整个应用程序都会从​​头到尾运行。当我们创建将用于深度学习模型或复杂机器学习模型的应用程序时,这是不可行的。Streamlit通过介绍Caching在这方面介绍了我们。

1.缓存

在我们简单的应用程序中。每当值更改时,我们就会一次又一次读取pandas数据框。虽然它适用于我们拥有的小数据,但不适用于大数据或当我们必须对数据进行大量处理时。让我们使用st.cache装饰器功能在以下流式处理中使用缓存。

或者,对于仅需运行一次的更复杂且耗时的功能,请使用:

当我们用Streamlit的缓存装饰器标记一个函数时,只要调用该函数,streamlit就会检查您调用该函数所使用的输入参数。

如果这是Streamlit第一次看到这些参数,它将运行该函数并将结果存储在本地缓存中。

下次调用该函数时,如果这些参数没有更改,则Streamlit知道它可以完全跳过执行该函数。它仅使用缓存中的结果。

2.侧边栏

为了根据您的偏好提供更整洁的外观,您可能希望将小部件移动到侧栏,例如Rshiny仪表板。这很简单。只需添加st.sidebar您的小部件的代码。

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

3.Markdown?

我喜欢用Markdown写作。我发现它不如HTML冗长,更适合数据科学工作。那么,我们可以在流线型应用程序中使用Markdown吗?

我们可以。有两种方法可以做到这一点。我认为,最好的方法是使用Magic命令。魔术命令使您可以像注释一样轻松地编写markdown。您也可以使用以下命令st.markdown

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

结论

Streamlit使创建应用程序的整个过程民主化,我再也推荐不了它。

在本文中,我们创建了一个简单的Web应用程序。但是可能性是无限的。在这里举个例子是流线型网站的GAN面孔。它只是通过使用小部件和缓存的相同指导思想来工作。

[DL]如何使用简单的Python为数据科学家编写Web应用程序?

我喜欢开发人员使用的默认颜色和样式,并且发现它比使用Dash更加舒适,而Dash直到现在我都在演示中使用。您还可以在流式应用程序中包含音频和视频。

最重要的是,Streamlit是一个免费的开放源代码,而不是一个开箱即用的专有Web应用程序。

过去,如果演示或演示文稿有任何更改,我必须与开发人员朋友联系。现在这样做相对来说是微不足道的。

从现在开始,我打算在我的工作流程中更多地使用它,考虑到它所提供的功能而无需所有的辛苦工作,我想您也应该这样做。

我不知道它是否可以在生产环境中很好地运行,但是对于小型概念验证项目和演示来说,这是一个福音。从现在开始,我打算在我的工作流程中更多地使用它,考虑到它所提供的功能而无需所有的辛苦工作,我想您也应该这样做。

您可以在此处找到最终应用程序的完整代码。

本文最后更新于2019年10月17日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » [DL]如何使用简单的Python为数据科学家编写Web应用程序?
超级便宜的原生ChatGPT4.0

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册