当前位置:   article > 正文

20201224:streamlit初识

streamlit
 

1、streamlit是什么

 
Streamlit是一个开源的Python库,是 机器学习工程师专用的应用程序框架, 第一个专门针对机器学习和数据科学团队的应用开发框架 利用Streamlit可以快速构建机器学习应用的用户界面。

 

2、streamlit安装

  • 安装:pip install streamlit

  • 查看是否安装成功:streamlit hello

  • 如果安装报错:AttributeError: module ‘google.protobuf.descriptor‘ has no attribute ‘_internal_create_key‘ 则升级protobuf即可。 pip install --upgrade protobuf

3、查看本地构建的web应用程序

  • step1:streamlit run ****.py

  • step2:浏览器中访问本地URL:localhost:8501

4、重要的插件

  • 文本输入

  1. import streamlit as st
  2. url = st.text_input('Enter URL')
  3. st.write('The Entered URL is', url)
  • 滑块

  1. import streamlit as st
  2. x = st.slider('x')
  3. st.write(x, 'squared is', x * x)
  • 复选框

隐藏或显示/隐藏程序中的特定区域,或者设置函数的布尔参数值。st.checkbox() 需要一个参数,即插件标签。在该应用程序中,复选框会用来切换条件语句。

  1. import streamlit as st
  2. import pandas as pd
  3. import numpy as np
  4. df = pd.read_csv("sample_submission.csv")
  5. if st.checkbox('Show dataframe'):
  6. st.write(df)
  • 下拉框插件

通过st.selectbox可以在一系列选项或列表中进行选择。常见的用法是将其作为下拉项然后从名单中挑选值。

  1. import streamlit as st
  2. import pandas as pd
  3. import numpy as np
  4. df = pd.read_csv("sample_submission.csv")
  5. option = st.selectbox('Which Club do you like best?',df['ID'].unique())
  6. 'You selected: ', option
  • 多选插件

 也可以用下拉框内的多个值。这里讲的是使用 st.multiselect在变量选选中获取多个值作为列表。

  1. import streamlit as st
  2. import pandas as pd
  3. import numpy as np
  4. df = pd.read_csv("sample_submission.csv")
  5. options = st.multiselect('What are your favorite clubs?', df['ID'].unique())
  6. st.write('You selected:', options)
  • 缓存

在Streamlit中通过st.cache装饰器函数实现缓存功能。用Streamlit的缓存装饰器标记函数时,无论这个函数是否执行,都会检查输入的参数值(由该函数处理的)。如果Streamlit之前没有处理过这些数据,它会调用函数并将运算结果存到本地缓存中。下次再调用函数时,倘若还是这些参数,Streamlit就会完全跳过这一块的函数执行,直接用缓存器里的结果数据。

  1. import streamlit as st
  2. import pandas as pd
  3. import numpy as np
  4. import plotly_express as px
  5. df = st.cache(pd.read_csv)("sample_submission.csv")
  6. @st.cache
  7. def complex_func(a,b):
  8. complex_func(a,b)
  • 侧边栏

把插件移动到侧边栏内,比如像Rshiny仪表盘,只需在插件代码中添加 st.sidebar即可。

  1. import streamlit as st
  2. import pandas as pd
  3. import numpy as np
  4. import plotly_express as px
  5. @st.cache
  6. def complex_func(a,b):
  7. complex_func(a,b)
  8. df = st.cache(pd.read_csv)("sample_submission .csv")
  9. clubs = st.sidebar.multiselect('Show Player for clubs?', df['ID'].unique())
  10. nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['CLASS'].unique())
  11. new_df = df[(df['ID'].isin(clubs)) & (df['CLASS'].isin(nationalities))]
  12. st.write(new_df)
  13. fig = px.scatter(new_df, x ='ID',y='CLASS',color='ID')
  14. st.plotly_chart(fig)
  • Markdown标记语言

在Streamlit程序中应用Markdown,最合适的就是调用Magic指令。通过该指令,用户做标记语言就会像写评论一样简单。用户也可以使用指令st.markdown。

  1. import streamlit as st
  2. import pandas as pd
  3. import numpy as np
  4. import plotly_express as px
  5. df = st.cache(pd.read_csv)("sample_submission.csv")
  6. clubs = st.sidebar.multiselect('Show Player for clubs?', df['ID'].unique())
  7. nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['CLASS'].unique())
  8. new_df = df[(df['ID'].isin(clubs)) & (df['CLASS'].isin(nationalities))]
  9. st.write(new_df)
  10. fig = px.scatter(new_df, x ='ID',y='CLASS',color='ID')
  11. st.plotly_chart(fig)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/175086
推荐阅读
  

闽ICP备14008679号