【NumPy入門】数学関数、基本統計量の計算

Pythonモジュール「NumPy」で数学関数、基本統計量を計算する方法についてまとめました。

【数学関数】指数関数、対数関数、円周率、ネイピア数e、ステップ関数、ランプ関数、シグモイド関数

指数関数、対数関数(底e、10、2) 、円周率、ネイピア数をNumPyで計算するサンプルです。

# -*- coding: utf-8
import numpy as np

# 配列生成
x = np.array([1, 2, 3, 4, 5, 6])

# 指数関数の計算
y = np.exp(x)
print(y)

# 底eの対数関数loge(x)
y = np.log(x)
print(y)

# 底10のlog10(x)の計算
y = np.log10(x)

# 底2のlog2(x)の計算
y = np.log2(x)

# ネイピア数e(自然対数の底)
e =  np.e
print(e) # 2.718281828459045

# 円周率π
pi = np.pi
print(pi) # 3.141592653589793
関連記事
1 【NumPy】指数関数の計算
2 【NumPy】対数関数の計算
3 【NumPy】底が10の対数関数 log10(x)
4 【NumPy】底が2の対数関数 log2(x)
5 【NumPy】円周率π、ネイピア数e

三角関数

# -*- coding: utf-8
import numpy as np
# xの値を生成(-3.14~3.14 0.25刻み)
x = np.arange(-3.14, 3.14, 0.25)

# sin関数の計算
y = np.sin(x)
print(y)

# sin関数の計算
y = np.cos(x)
print(y)

# tan関数の計算
y = np.tan(x)
print(y)
関連記事
1 【NumPy】正弦 numpy.sin(x)
2 【NumPy】余弦 numpy.cos(x)
3 【NumPy】正接 numpy.tan(x)

ステップ関数

ステップ関数は次の通りです。

(1)   \begin{eqnarray*} f(x)=\begin{cases}1 & ( x \geq T ) \\0 & ( x < T )\end{cases} \end{eqnarray*}

PythonとNumPy配列を使ってステップ関数を計算し、Matplotlibで計算結果をグラフに表示します。

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

# xの値(-8~8で0.1刻みで配列生成)
x = np.arange(-8, 8, 0.01) #

# ステップ関数
y = 1 * (x > 0)

# グラフの設定
plt.plot(x, y, lw=5) # プロット
plt.xlim(-8, 8)  # x軸の範囲
plt.ylim(-0.5, 1.5) # y軸の範囲
plt.grid() # グリッド描画
plt.show() # グラフを出力

関連記事
1 【NumPy/Matplotlib】ステップ関数(ヘビサイド・階段関数)のグラフ作成

ランプ関数(ReLU)

ランプ関数(ReLU)は次の通りです。

(2)   \begin{eqnarray*} f(x)=x_+=max(0, x) \end{eqnarray*}

xが正の時はxをそのまま出力し、それ以外の時は0を出力します。
PythonとNumPy配列を使ってランプ関数(ReLU)を計算し、Matplotlibで計算結果をグラフに表示します。

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

# xの値(-8~8で0.1刻みで配列生成)
x = np.arange(-8, 8, 0.1) #

# ランプ関数
y = x * (x > 0)

# グラフの設定
plt.plot(x, y, lw=5) # プロット
plt.xlim(-8, 8)  # x軸の範囲
plt.ylim(-2, 8) # y軸の範囲
plt.grid() # グリッド描画
plt.show() # グラフを出力

関連記事
1 【NumPy/Matplotlib】ランプ関数(ReLU)のグラフ作成

シグモイド関数

シグモイド関数は次の通りです。

(3)   \begin{eqnarray*} f(x)=\frac{1}{1+e^{-x}} \end{eqnarray*}

PythonとNumPy配列を使ってシグモイド関数を計算し、Matplotlibで計算結果をグラフに表示します。

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

# xの値(-8~8で0.1刻みで配列生成)
x = np.arange(-8, 8, 0.1)

# シグモイド関数
y = 1 / (1 + np.exp(-x) )

# グラフの設定
plt.plot(x, y) # プロット
plt.xlim(-8, 8)  # x軸の範囲
plt.ylim(-0.5, 1.5) # y軸の範囲
plt.grid() # グリッド描画
plt.show() # グラフを出力

関連記事
1 【NumPy/Matplotlib】シグモイド関数のグラフ作成

【基本統計量】合計、平均、分散、標準偏差、不偏分散、不偏標準偏差、偏差値、最大値、最小値、中央値、算術平均、差分、勾配

# -*- coding: utf-8 -*-
import numpy as np

# データ
data = np.array([31,30,27,25,29,34,32,31,30,29])

# 合計を計算
sum = np.sum(data)
print("合計:", sum)

# 平均を計算
ave = np.average(data)
print("平均:", ave)   # 結果を表示

# 分散を計算
var = np.var(data)
print("分散:", var)   # 結果を表示

# 標準偏差を計算
std = np.std(data)
print("標準偏差:", std)   # 結果を表示

# 不偏分散を計算
dvar = np.var(data, ddof=1)
print(dvar)   # 5.76

# 不偏標準偏差を計算
dstd = np.std(data, ddof=1)
print(dstd)

# 偏差値を計算
ans = np.round_(50+10*(x-np.average(x))/np.std(x))
print(ans)

# 最大値を計算
max = np.amax(data)
print(max)    # 34

# 最小値を計算
min = np.amin(data)
print(min)    # 27

# 中央値を計算
median = np.median(data)
print(median)  # 30.0

# 算術平均を計算
mean = np.mean(data)
print(mean)    # 29.8

# xの差分を計算
diff_x = np.diff(x)
print(diff_x) #
詳細ページ
詳細 合計平均分散標準偏差不偏分散不偏標準偏差偏差値最大値最小値中央値算術平均差分勾配

【統計処理】点推定、区間推定、検定、回帰分析

詳細ページ
詳細 母平均の点推定母分散の点推定 ■母比率の点推定
区間推定 母平均の区間推定(t分布) ■母分散の区間推定(χ2分布)
検定 ■t検定 ■F検定 ■カイ二乗検定
回帰分析 最小二乗法重回帰分析直線近似曲線近似株価予測
関連記事
1 Python入門 サンプル集
2 NumPy入門 サンプル集

コメント