ヤマムギ

growing hard days.

*

「streamlit勉強会」に参加しました

   


streamlitってなんだろう?
と思いながら参加しまししました。

fin-pyというPython x 金融のコミュニティ主催の勉強会です。

streamlit

https://docs.streamlit.io/en/stable/getting_started.htmlにStreamlitを動かすソースコードがあります。

streamlitはインタラクティブな機械学習にちょうどよいそうです。
ストリームリットって読むのですね。

今日の勉強会のソースコードはGithubで公開されています。https://github.com/lightondust/finteract_streamlit

すでに動くアプリはこちらで確認できます。
https://share.streamlit.io/lightondust/finteract_streamlit
すごくご準備万端でご用意されていました。
手元で動く環境を触りながらお話を聞けるのはわかりやすくて嬉しいですね。

streamlitはPythonだけで手軽に動くWebアプリにできるそうです。

アプリの起動

これだけでデモ画面が用意されたHelloアプリが起動できるそうです。

アプリの起動時はrunコマンドで起動できます。

コーディング

コードでマークダウンが使えるので、Webページへの表示もだいたいなんでもできる。

サンプルアプリでもラジオボタンとかで表示を切り替えたりしてます。
Display interactive widgetsというチェックボックスやボタンやラジオボタンなどのメソッドが用意されています。
例えばチェックボックスだとこんな感じ。

log_yにはチェックしたかどうかのBoolean値が代入されます。

selectboxだとデータフレームの列を選択肢にできる。

選択した値がsectorに代入されます。
書きやすいコードですね。

デプロイ

Streamlit Shareを使うとサクッとデプロイしてアプリを動かせます。
プライベートな認証情報とかは扱えないと。
無料のパブリックな環境なので仕方ないですね。
他にはHerokuを使う場合もあります。
もちろんサーバーを用意してデプロイすることも可能。

パフォーマンス

ユーザー操作、選択のたびに画面の関連コードが実行し直すので遅くなる。
対処法は、@st.cacheを使って共通処理を一回だけ実行にする、
そして一画面分の再実行なので、画面をメニューで分ける。

処理順と表示順

streamlitはコードを書いた順に実行される。
シンプルに書けるがゆえの制約ですね。
Placeholdersを使うとコードの順番を変更できる。

まとめ

Jupyter Notebookとかで解析や可視化したものを、簡単にアプリ化できるのがstreamlitなんですね。
素早く試して検証するプロトタイピングがこれからさらに重要になるなかで、このようなツールを知れることはすごくいいですね。
発表いただいた@sea85419さん、運営の皆さま、ありがとうございました!

当日の資料はconnpassのイベントページstreamlit勉強会で公開されています。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

i

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - Python

ad

ad

  関連記事

SQLAlchemyのModelクラスをMySQLから自動生成する

SQLAlchemyのMySQLモデルを書くのが面倒で、きっと何かツールがあるの …

SQLAlchemyでシンプルにjoinする

過去のSQLAlchemyでjoinするという記事でPythonのSQLAlch …

CentOS 6でPythonからOracleに接続する

OracleのデータをPythonでさわりたくて、その実行環境がCentOS6の …

「大阪Pythonユーザの集まり」に行ってきました

「大阪Pythonユーザの集まり」 に行ってきました。 あんまりメモ取れてません …

Linux Mint 17 MATE 64bit にTensorFlowをインストールする

勉強会でTensorFlowを使用しますので、Linux Mint 17 MAT …

SendGrid(Python)で添付ファイル付きのメールを送信する

SendGridを使って添付ファイル付きのメールを送信するサンプルをPython …

Rocket.ChatのAPIでユーザーを一括登録する

Rocket.Chatの管理画面にインポートのメニューはあって、どうやらuser …

feedlyでタグ付けした記事を自動でメール配信する

feedlyを使っていて、良記事や知っておいて欲しい記事とかを部門とかチームとか …

個人のGoogleカレンダーの予定をPythonで取得する

Google Calendar Twilio ReminderのGoogleカレ …

Linux Mint 17 MATE 64bit にIPython Notebookをインストールする

今日行く勉強会でIPython Notebookの環境が必要なため、手持ちのLi …