SEO 仮想通貨アンテナ

SEO 仮想通貨 ブロックチェーン情報

無料でWEB素材をダウンロード

無料イラスト【イラストAC】

Streamlit

PythonライブラリStreamlit 公式ドキュメントに従いプログラミング

更新日:

Streamlit 公式ドキュメント

StreamlitサイトURL https://streamlit.io/  Docsメニューを選択する。

または、

インストールからサンプルアプリの作成デプロイまで。

Streamlitのインストール

  • お気に入りのIDEまたはテキストエディタを使用
  • Python 3.7-Python 3.10のインストール
  • PIPの使用(pip はPythonのパッケージソフトウェアをインストール・管理するための管理システム。Python 3.4以降には、標準で付属。)

Streamlitが公式にサポートしているWindowsの環境マネージャーはAnacondaNavigatorなので、AnacondaNavigatorをインストール

Anacondaのインストールページに記載されている手順に従う。

AnacondaNavigatorを使用して環境をセットアップおよび管理します

新しい環境の横にある「▶」アイコンを選択します。次に、ターミナルを開きます。

pip install streamlitコマンド入力

streamlit helloコマンドを入力して機能を機能を確認する(ブラウザの新しいタブにサンプル画面が表示される。)

Streamlit Install

Streamlitのインストール 事前準備 favorite IDE or text editor Python 3.7 - Python 3.10 PIP 仮想環境のセットアップ Streamlit ...

続きを見る

アプリの作成

最初のアプリを作成

拡張子が.pyのファイル例えばuber_pickups.pyを作成。

import streamlit as st
import pandas as pd
import numpy as np

を追加。

タイトル表示

st.title('Uber pickups in NYC')

コマンドラインからStreamlitを実行

streamlit run uber_pickups.py

アプリはブラウザの新しいタブで開きます。

サンプルデーターの取得

サンプルデーターhttps://s3-us-west-2.amazonaws.com/streamlit-demo-data/uber-raw-data-sep14.csv.gzをロードする。

DATE_COLUMN = 'date/time' DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
'streamlit-demo-data/uber-raw-data-sep14.csv.gz')

def load_data(nrows):
data = pd.read_csv(DATA_URL, nrows=nrows)
lowercase = lambda x: str(x).lower()
data.rename(lowercase, axis='columns', inplace=True)
data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
return data

ロード件数とロード中の表示を記述

# Create a text element and let the reader know the data is loading.
data_load_state = st.text('Loading data...')
# Load 10,000 rows of data into the dataframe.
data = load_data(10000)
# Notify the reader that the data was successfully loaded.
data_load_state.text('Loading data...done!')

キャッシュの利用

サンプルデーター取得のdef load_data(nrows):コードを下記コードに入れ替える。

@st.cache
def load_data(nrows):

サンプルデーター取得のdef load_data(nrows):コードを下記コードに入れ替える。

data_load_state.text('Loading data...done!')

変更後にデーターのロードが短時間で完了することLoading data...done!が短時間で表示されることを確認する。

ロードデータを表示する

st.subheader('Raw data')
st.write(data)

ヒストグラム(棒グラフ)として表示する

# サブヘッダーの表示
st.subheader('Number of pickups by hour') 

# 1時間ごとに分類したヒストグラムを生成
hist_values = np.histogram(

data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]

# ヒストグラムを描画する。
st.bar_chart(hist_values)

マップにデータをプロットする

# サブヘッダーを追加しマップにプロット表示する。
st.subheader('Map of all pickups')
st.map(data)

マップにプロットする時間を指定

# 17時のデーターを指定して表示する。
hour_to_filter = 17
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]
st.subheader(f'Map of all pickups at {hour_to_filter}:00')
st.map(filtered_data)

スライダーを利用してプロットするデータの時間を指定できるようにする。

hour_to_filter = st.slider('hour', 0, 23, 17) # min: 0h, max: 23h, default: 17h

ボタンを使用してデータ表示を切り替える

st.subheader('Raw data')
st.write(data)

を以下のコードに置き換える。

if st.checkbox('Show raw data'):
st.subheader('Raw data')
st.write(data)

チェックボックスに指定した場合のみロードした生データを表示する。

uber_pickups.py全体のコード

import streamlit as st
import pandas as pd
import numpy as np

st.title('Uber pickups in NYC')

DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
'streamlit-demo-data/uber-raw-data-sep14.csv.gz')

@st.cache
def load_data(nrows):
data = pd.read_csv(DATA_URL, nrows=nrows)
lowercase = lambda x: str(x).lower()
data.rename(lowercase, axis='columns', inplace=True)
data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
return data

data_load_state = st.text('Loading data...')
data = load_data(10000)
data_load_state.text("Done! (using st.cache)")

if st.checkbox('Show raw data'):
st.subheader('Raw data')
st.write(data)

st.subheader('Number of pickups by hour')
hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)

# Some number in the range 0-23
hour_to_filter = st.slider('hour', 0, 23, 17)
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]

st.subheader('Map of all pickups at %s:00' % hour_to_filter)
st.map(filtered_data)

アプリのデプロイ

  1. Streamlit Cloudを使用して、uber_pickups.pyアプリを無料でデプロイ、管理、共有できます。
  2. uber_pickups.pyアプリを作成したGitHubリポジトリにpushします(requirements.txtを作成し同じリポジトリへpushする。)
  3. share.streamlit.ioにサインインします

[NEW]または[アプリをデプロイ]をクリックして、リポジトリ名 ブランチ名 アプリを選択しデプロイボタンを押しデプロイします。

備考

GitHubについて

いまさらGitHub(Ver1.2)

Git Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システム ウィキペディア url https://ja.wikipedia.org/wiki ...

続きを見る

requirements.txt

Python の開発環境で使われているパッケージの名とバージョンの一覧が記載されています。

ターミナル画面で、
pip freeze > requirements.txt
を入力して作成します。

GitHub共有するときに、作成しpushしておきます。

requirements.txtが無い場合、最新バージョンが使われ動きます。

ビットコインってなに?

2008年11月、metzdowd.comにナカモトサトシにより投稿された論文Bitcoin:A Peer-to-Peer Electronic Cash Systemで定義された仕様とをもとにビットコイン・コミュニティーで開発が続けられる製造と取引に暗号学を使った通貨のことです。

ビットコイン自体は、フリー・ソフトウエアで、ソフトウェア開発のプラットフォームGitHubに登録すれば、ソースやドキュメント閲覧が可能で、開発に参加も可能です。

ナカモトサトシは、2010年12月まで開発に携わっていましたが、その後姿を消しました。日本名ですが、国籍も含め匿名性が高く身元も不明です。

真偽のほどは、不明ですがSBI社長の北尾氏が、2018年3月期第2四半期 SBIホールディングス(株)決算説明会動画の1:29:20頃)でナカモトサトシと議論を交わしたと発言して話題になりました。

ビットコインの仕組み

ビットコインは、P2P型の公開型分散台帳技術(DLT)によって信頼性を担保され運用されるブロックチェーンで結合された暗号通貨(cryptocurrency)のことです。

ビットコインは、P2Pネットワーク上のサーバー上で同一取引情報を持ちコントロールすることで取引の妥当性のチェックが行われるため、銀行など、特定の管理者がいない非中央集権型の仮想通貨と呼ばれています。

ブロックチェーン


GitHub

ブロックチェーンの動き

マイニング

ビットコインは送信アドレス(Tx)に対するデジタル署名によって保護されており、一定時間(10分)ごとに、すべての取引記録を分散台帳に追加します。

その追加処理には、ネットワーク上の分散取引台帳データと、10分間に発生したすべての取引のデータの整合性を取りながら正確に記録することが必要です。

整合性を取る作業は、膨大な計算量が必要となるため専用のハードウエアの計算能力を使って、誰でもが取引を処理することができます。

この手伝いをしてくれた人(膨大な計算処理を行った人)の中で、結果として追記処理を成功させた人には、その見返りとしてビットコインが支払われます。

この作業をマイニングと呼びます。

マイニングには、ソロマイニングとプールマイニングがあり、個人のPCでも余った演算能力でプールマイニングに参加できます。

ブロックチェーンをより深く理解する

全画面にして字幕設定を自動翻訳 イタリア語=>自動翻訳を経由して日本語に設定するとよくわかります。

上記デモは、下記リンク先サイトを使用しているので、自分でも試すことができます。

ブロックチェーンエクスプローラー

ブロックチェーンアドレスを入力することで、送金状況(confirmation回数の確認)が行えます。

イーサリウムの仕組み

-Streamlit

Copyright© SEO 仮想通貨アンテナ , 2024 All Rights Reserved.