Numpy配列へのノイズ追加

Numpy配列へのノイズ追加

オリジナルデータ

オリジナルデータとして、以下のようなデータ(Numpy配列、50点)を用意する。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,5,50) # 0から5までを50等分したデータを作成
y = x

plt.scatter(x,y)
plt.show()

f:id:storikai:20190516231207p:plain
Original

一様乱数データの加算

オリジナルデータに、一様乱数データを加算する。

x = np.linspace(0,5,50) # 0から5までを50等分したデータを作成
a = np.random.rand(50)*0.5 # 50個の0~0.5の乱数(一様)データを作成
y = x + a # 和はelement-wise

plt.scatter(x,y)
plt.show()

f:id:storikai:20190516231237p:plain
Random

なお、一様乱数データの例としては、以下のような分布となる。

r = np.random.rand(50)*0.5 # 50個の0~0.5の乱数(一様)データを作成
plt.hist(r,10) # 10階級のヒストグラムを表示
plt.show()

f:id:storikai:20190516231300p:plain
Random_hist

正規分布データの加算

オリジナルデータに、正規分布データを加算する。

x = np.linspace(0,5,50) # 0から5までを50等分したデータを作成
a = np.random.normal(0.3, 0.2, 50) # 平均0.3、標準偏差0.2、50個の乱数(正規分布)データを作成
y = x + a # 和はelement-wise

plt.scatter(x,y)
plt.show()

f:id:storikai:20190516231335p:plain
RandomNormal

※参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html#numpy.random.normal

なお、正規分布データの例としては、以下のような分布となる。

r = np.random.normal(0.3, 0.2, 50) # 平均0.3、標準偏差0.2、50個の乱数(正規分布)データを作成
plt.hist(r,10) # 10階級のヒストグラムを表示
plt.show()

f:id:storikai:20190516231356p:plain
RandomNormal_hist