ヤマムギ

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入門ガイド」という本を書きました。

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

 - Python

ad

ad

  関連記事

PyCharmでテキストを折り返す

超小ネタです。 コーディングしているときは1行でそんなに長いコードを書かないので …

Redmine REST APIを操作するpython_redmineを試してみた

Redmine のGUIの登録が面倒なのでコマンドで登録、更新、時間の記録が出来 …

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

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

SQLAlchemyでシンプルにjoinする

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

IPython Notebookで梅田のラーメン屋さんの統計情報を抽出するというハンズオンに行ってきました

IPython Notebookで梅田のラーメン屋さんの情報をWebスクレイピン …

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

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

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

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

docomo Developer supportの 雑談対話APIから自然対話APIへ移行しました

LINEやSlackのbotで重宝していた、雑談対話APIが終了する、とのことで …

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

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

CentOS 6にPython実行環境を構築

CentOS6(32bit)にPython2.7実行環境を構築した際のメモです。 …