Streamlit入门指南

宅哥聊构架 后端 2024-06-12

Streamlit入门指南

Streamlit介绍

Streamlit是一个Python库,允许您创建交互式的数据科学和机器学习Web应用程序。使用Streamlit,您可以快速轻松地创建自定义Web应用程序,让用户与您的数据和模型进行交互。

Streamlit旨在简单直观,专注于通过几行代码轻松创建美观和功能强大的应用程序。它包括广泛的内置小部件和工具,用于显示数据,处理用户输入和创建自定义可视化。

快速入门指南

要开始使用Streamlit,请按照以下步骤操作:

使用pip安装Streamlit:pip install streamlit创建一个新的Python文件并导入Streamlit:import streamlit as st使用Streamlit的API定义您的应用程序,其中包括用于创建小部件,显示数据和处理用户输入的函数。使用命令streamlit run <filename.py>运行您的应用程序。以下是一个简单的Streamlit应用程序示例,显示滑块小部件和绘图:python

复制代码
import streamlit as st import numpy as np import matplotlib.pyplot as plt # 定义滑块小部件 x = st.slider('选择x的值', 0.0, 10.0, 5.0) # 根据滑块值创建绘图 y = np.sin(x) plt.plot(x, y) st.pyplot()

该应用程序显示一个滑块小部件,允许用户选择x的值,然后根据该值显示正弦函数的绘图。您可以将此应用程序保存为Python文件(例如myapp.py),然后在终端中运行命令streamlit run myapp.py来运行该应用程序。

Streamlit入门指南

最佳实践

以下是使用Streamlit时应记住的最佳实践:

保持代码组织和模块化,清晰分离应用程序的不同组件。使用Streamlit的缓存功能来提高性能并避免不必要的计算。使用Streamlit的布局选项创建干净直观的用户界面。尽可能使用Streamlit的内置小部件和工具,而不是重新发明轮子。充分测试您的应用程序,包括边缘情况和错误处理。考虑使用像Git这样的版本控制系统来管理您的代码并与他人合作。通过遵循这些最佳实践,您可以创建高质量的Streamlit应用程序,易于使用,维护和扩展。

其它一些有趣的例子

Streamlit官方有一个应用程序和图表库 Streamlit Gallery,其中包括各种各样的示例,从简单的小部件到复杂的机器学习模型。

下面基于我最近的学习,提供两个有趣的实例。

文本生成器python

复制代码
import streamlit as st import markovify # 读取文本文件 with open("text.txt") as f: text = f.read() # 使用Markov模型生成文本 text_model = markovify.Text(text) # 创建Streamlit应用程序 st.title("文本生成器") with st.form(key='my_form'): submit_button = st.form_submit_button(label='生成文本') if submit_button: # 生成文本 generated_text = text_model.make_sentence() # 显示生成的文本 st.write(generated_text)

这个应用程序使用Markov模型生成文本。用户可以上传自己的文本文件,然后使用应用程序生成新的文本。应用程序使用Streamlit的表单小部件来处理用户输入和提交。

图像分类器python

复制代码
import streamlit as st import tensorflow as tf from PIL import Image import numpy as np # 加载模型 model = tf.keras.models.load_model('model.h5') # 创建Streamlit应用程序 st.title("图像分类器") uploaded_file = st.file_uploader("上传一张图片", type=["jpg", "jpeg", "png"]) if uploaded_file is not None: # 加载图像 image = Image.open(uploaded_file) # 调整图像大小 image = image.resize((224, 224)) # 转换为NumPy数组 image_array = np.array(image) # 扩展维度 image_array = np.expand_dims(image_array, axis=0) # 预测图像类别 predictions = model.predict(image_array) # 获取最高概率的类别 predicted_class = np.argmax(predictions[0]) # 显示预测结果 st.write("预测结果:", predicted_class)

这个应用程序使用TensorFlow模型来对上传的图像进行分类。用户可以上传一张图像,然后应用程序将使用模型对图像进行分类,并显示预测结果。应用程序使用Streamlit的文件上传小部件来处理用户输入。

转载来源:https://juejin.cn/post/7275595720488009740

Apipost 私有化火热进行中

评论