NumPy⑤ (サイン、コサイン、タンジェントの逆関数)

逆関数

NumPyで、三角関数の逆関数は各関数名の頭に arc がつきます。

例えば arcsin は、y = sin(x) のときの x の値を x = arcsin(y) として求めることができます。

出力される値は、degree(度)ではなく radian(ラジアン) になります。

[Google Colaboratory]

1
2
3
4
import numpy as np
x = np.array([0.5, 1], dtype = np.float)

np.arcsin(np.sin(x)) # sinの逆関数

[実行結果]

[Google Colaboratory]

1
np.arccos(np.cos(x)) # cosの逆関数

[実行結果]

[Google Colaboratory]

1
np.arctan(np.tan(x)) # tanの逆関数

[実行結果]

NumPy④ (サイン、コサイン、タンジェント)

NumPyにはサイン、コサイン、タンジェントを計算する関数が用意されています。

サイン

サインを計算するには sin() を使います。

引数には、degree(度)ではなく radian(ラジアン) を指定します。

[Google Colaboratory]

1
2
3
4
import numpy as np

x = np.array([0, 1], dtype = np.float)
np.sin(x)

[実行結果]

[Google Colaboratory]

1
np.sin(np.pi * 0.5)   # π/2のときのサインの値は1

[実行結果]

コサイン

コサインを計算するには cos() を使います。

引数には、degree(度)ではなく radian(ラジアン) を指定します。

[Google Colaboratory]

1
np.cos(x)

[実行結果]

[Google Colaboratory]

1
np.cos(np.pi * 0.5)    # 0になる

[実行結果]

タンジェント

タンジェントを計算するには tan() を使います。

引数には、degree(度)ではなく radian(ラジアン) を指定します。

[Google Colaboratory]

1
np.tan(x)

[実行結果]

[Google Colaboratory]

1
np.tan(np.pi * 0.5)    # 無限に発散する

[実行結果]

円周率

円周率を表す ndarray.pi も用意されています。

[Google Colaboratory]

1
np.pi  # 円周率

[実行結果]

NumPy③ (ベクトルの累乗、平方根)

ベクトルの累乗

NumPyで、累乗は power(配列, 指数) で求めることができます。

また、演算子の ** で求めることも可能です。

[Google Colaboratory]

1
2
3
import numpy as np
x = np.array([1, 2, 3, 4, 5], dtype = np.float)
np.power(x, 2)

[実行結果]

[Google Colaboratory]

1
x ** 2

[実行結果]


ベクトルの平方根

NumPyで、平方根は sqrt(x) で求めることができます。

[Google Colaboratory]

1
2
x = np.array([1, 2, 3, 4, 5], dtype = np.float)
np.sqrt(x)

[実行結果]

NumPy② (スカラー演算)

スカラー演算

線形代数では、大きさのみで表され、方向をもたない量のことをスカラーと言います。

つまり、0 や 1、2 などの連続しない独立した単一の値がスカラーです。

ベクトルは1次元配列なので、ベクトルに対してスカラー演算を行う場合、forなどで処理を繰り返す必要があります。

しかしndarrayオブジェクトとして作成したベクトル列は、ループを使わず一括して処理が行えます。

ブロードキャスト

NumPyでは、ブロードキャストという仕組みを使うことで、成分ごとの演算をまとめて行うことができます。

ブロードキャストを行うための条件は下記のいずれかの条件を満たした場合です。

  • 次元が等しい。
  • 一方のベクトルまたは行列がスカラーである。(スカラー演算)

スカラー演算のサンプル

ベクトルに対して四則演算子でスカラー演算を行うと、すべての要素に対して演算を行うことができます。

[Google Colaboratory]

1
2
3
4
5
6
7
8
import numpy as np

# ベクトルを作成
import numpy as np
x = np.array([1, 2, 3, 4, 5], dtype = np.float)

# 足し算
x + 20

[実行結果]

[Google Colaboratory]

1
2
# 引き算
x - 10

[実行結果]

[Google Colaboratory]

1
2
# 掛け算
x * 100

[実行結果]

[Google Colaboratory]

1
2
# 割り算
x / 2

[実行結果]

[Google Colaboratory]

1
2
# 割り算の結果を整数だけにする
x // 3

[実行結果]

[Google Colaboratory]

1
2
# 剰余
x % 3

[実行結果]

ベクトルに対してそれぞれのスカラー演算が行われていることが確認できました。

NumPy① (配列の作成)

NumPyとは

NumPy数値計算ライブラリで、Pythonがデータサイエンスの分野で注目されるのに貢献しています。

Pythonの仕様を踏まえつつ、高度な数値計算を高速に行えるように設計されていてコアな部分はC言語で実装されています。

配列の作成

線形代数では、要素を縦または横に一列に並べたものベクトルと呼びます。

プログラミングでいうと1次元の配列のことです。

NumPyの配列(ベクトル)はndarrayクラスのオブジェクトとして表現され、arrayコンストラクタで作成します。

[Google Colaboratory]

1
2
3
4
5
6
import numpy as np

x = np.array([1, 2, 3, 4, 5], # 配列要素
dtype = np.float # 実数型(float)にする
)
print(x)

arrayコンストラクタの第1引数には、カンマで区切って要素を指定します。

第2引数には配列の型dtypeで指定します。今回は小数を含む実数型としてnp.floatを指定しています。

[実行結果]

実数型のベクトル(1次元配列)を作成することができました。

Dash Enterprise App Gallery⑦ (Yield curve Analysis)

Yield curve Analysis

利回り曲線分析では、連邦政府が一定期間お金を借りるのにどれだけの費用がかかるかを示し、長期金利短期金利の関係を明らかにすることができます。

今後、インフレ率がどの程度になるか、どれだけの経済成長が見られるか、などの将来的な経済の予測を行うこともできます。

Yield curve Analysis - https://dash.gallery/dash-yield-curve/

Dash Enterprise App Gallery⑥ (Fifa Dashboard)

Fifa Dashboard

Fifa DashboardPlayer Comparisonダッシュボードを使うと、サッカー選手の特徴を容易に比較することができます。

Fifa Dashboard - https://dash.gallery/dash-fifa-dashboard/

左右のドロップダウンリストからサッカー選手を選ぶと、二人の選手の特徴がそれぞれ表示されます。

真ん中のレーダーチャートには2人の選手のパス/ドリブル/ディフェンス/シュート/足の速さ/フィジカルに関する評価が重ねて表示されます。

また下のテーブルには、プレイヤーの様々な情報(氏名、国籍、ポジション、年棒、スキル、ポテンシャルなど)も表示されます。

Dash Enterprise App Gallery⑤ (Dash Autonomous Driving)

Dash Autonomous Driving

今回ご紹介するアプリでは、自動運転の様子をシミュレーションします。

自動運転車の走行から収集されたシーンを読み込み、センサーによるデータ(LIDAR、パスなど) と手動で注釈を付けたデータ(境界ボックス) の両方を表示します。

Dash Autonomous Driving Demo - https://dash.gallery/dash-avs-explorer/

ユーザインターフェース(UI)は、基本的なUI高度なUIがあり、モードをクリックすることで切り替えができます。

どちらのユーザインターフェース(UI)も streetscape.gl を使用して作成されており、Dash コンポーネントとして利用できます。

Dash Enterprise App Gallery④ (Match Analysis Tool)

Match Analysis Tool

今回ご紹介するアプリは、サッカーにおけるチームの集合的な動きのパフォーマンスを分析したり、個々のプレーヤーの評価をしたりすることを支援します。

Match Analysis Tool - https://dash.gallery/dash-soccer-analytics/

Dash Enterprise のスナップショット・エンジンを使うと、ユーザーのプレイする様子(ポジショニングやボール回し)を把握できるようになります。

試合の様子を再現することでそれぞれのプレイを確認することができ、コーチやマネージャは下記のような分析を行うことができます。

  • 個々のプレーヤーのオンボール、オフボールでの位置と動き
  • 攻撃時と防御時のチームフォーメーション
  • チーム全体の動きまたは一部の選手の動作

Dash Enterprise App Gallery③ (Explore object properties)

Explore object properties

Explore object propertiesでは、画像セグメンテーションからメタデータを抽出し、データテーブルとリンクして表示することができます。

Explore object properties - https://dash.gallery/dash-label-properties/

まず白血球の一種の画像が左側に表示されています。

この画像は、scikit-image を使用して領域ごと分割されおり、領域の面積周囲の長さなどの多くのプロパティが左のテーブルに表示されます。

画像とデータテーブルは動的にリンクされていて、一方を操作するともう片方に情報が反映されます。

使い方

このアプリケーションの操作方法は以下の通りです。

  • 画像内の領域にカーソルを合わせると、それらに関する情報が表示され、データテーブル内の対応する行が強調表示されます。
  • データテーブルの対応する列を選択すると、各領域に表示される情報が変更されます。
  • データテーブルの行をクリックすると、対応する領域の周りにアウトラインが描画されます。
  • データテーブルをフィルタリングすると、対応する領域が抽出されます。
  • データテーブルから行を削除すると、対応する領域が画像から削除されます。