NumPy:【median,radians,sin,cos,tan,e,log,exp】実行例
サマリ
- np.mean
- 平均
- np.median
- 中央値
- np.radians
- ラジアン
- np.sin、np.cos、np.tan
- 三角関数
- np.e
- 自然対数の底
- ネイピア数
- np.log
- 対数
- np.exp
- エクスポネンシャル
前提
- 特になし
サンプルコード
np.mean、np.median(中央値)
import numpy as np
a = np.array([80,78,91,84,76,68,89,85,91,83])
print(np.mean(a))
print(np.median(a))
82.5 83.5
- np.mean
- 平均値
- このデータでは82.5になった
- np.median
- 中央値
- このデータでは83.5になった
np.radians、三角関数
角度からラジアンに変換
import numpy as np
r_30 = np.radians(30)
r_45 = np.radians(45)
r_60 = np.radians(60)
r_90 = np.radians(90)
print(r_30)
print(r_45)
print(r_60)
print(r_90)
0.5235987755982988 0.7853981633974483 1.0471975511965976 1.5707963267948966
- 30度
- 0.5235987755982988
- 45度
- 0.7853981633974483
- 60度
- 1.0471975511965976
- 90度
- 1.5707963267948966
角度からラジアンに変換
a = np.sin(r_30)
b = np.cos(r_60)
c = np.tan(r_45)
print(f'sin:{a}')
print(f'cos:{b}')
print(f'tan:{c}')
sin:0.49999999999999994 cos:0.5000000000000001 tan:0.9999999999999999
- sin(30度)
- ≒0.5
- cos(60度)
- ≒0.5
- tan(45度)
- ≒1
- 有効桁数があるので、ちょうどいい数字にはならない
- 必要あれば切り上げ、切り下げで処理
- しかし、軽量化など敢えて精度を下げる場合の除いて、そのように処理することはない
np.exp
import numpy as np
e = np.e
eee = np.e*np.e*np.e
e_3 = np.exp(3)
print(e)
print(eee)
print(e_3)
2.718281828459045 20.085536923187664 20.085536923187668
- e
- 自然対数の底
- 2.71…が確認できる
- eee
- eを3回かけた結果
- np.expの結果と比較するために計算
- 20.08…が確認できる
- e_3
- np.exp(…)の引数を3にするとeを3回かけた結果と同様になる
- 20.08…が確認できる
- eeeの結果とほぼ一致する
※同じとみなせる(有効桁数の差)
- eeeの結果とほぼ一致する
np.log
a = np.log(e)
b = np.log(0)
c = np.log(1)
print(a)
print(b)
print(c)
1.0 -inf 0.0
- a,b,cいずれも数学の計算値と一致する
- 「-inf」はマイナス無限大
- 参考
- logはAI勉強していると数式によく登場する
- 例
- AI学習時の損失計算に負の対数尤度
- 情報理論、確率統計
- GANの理論式
- 強化学習の理論(方策勾配定理)
- AIを勉強するために避けては通れない
- logをもう少し親しみやすいものにするための記事

