ヤマムギ

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勉強会で公開されています。


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

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

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

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

 - Python

ad

ad

  関連記事

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

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

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

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

PyCharmでテキストを折り返す

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

「MonotaRo Tech #3 テスト自動化」に行ってきました

モノタロウさんの「MonotaRo Tech #3 テスト自動化」に行ってきまし …

Python openpyxlで結合セルを含むExcelファイルを開くと罫線が消える

PythonのExcelを読み書きするためのライブラリ、openpyxlで結合セ …

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

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

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

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

pythonのsqlalchemyで嵌った話

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

PythonでHTMLエスケープされた全角ハイフンをアンエスケープする

PythonでHTMLエスケープとアンエスケープについて調べていると、 xml. …

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

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