ヤマムギ

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認定 デベロッパーアソシエイト」という本を書きました。

【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

 - Python

ad

ad

  関連記事

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

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

pythonのsqlalchemyで嵌った話

エラーメッセージ InvalidRequestError: SQL expres …

SQLAlchemy Session.executeでinsertしてAUTO INCREMENTでセットされたプライマリキーを取得したい

PythohのORMライブラリSQLAlchemyでMySQLにインサートしたレ …

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

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

pyenv update で「pyenv: no such command `update’ 」

環境 macOS Sierra 10.12.4 pyenvのアップデート pye …

Python SQLAlchemy MySQLでcase文を使う

PythohのORMライブラリSQLAlchemyでMySQLのテーブルSele …

PyCharmでテキストを折り返す

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

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

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

「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました

「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました。 略 …

Apple Silicon M1 MacBook ProにJupyter Notebookをインストールしました

Python – Jupyter NotebookをMac M1 搭 …