In [1]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
(1) 2個のサイコロを振った結果をシュミレーションします。次の例のように、1〜6の整数のペアを含むarrayを乱数で生成してください。
In [2]:
from numpy.random import randint
randint(1,7,2)
Out[2]:
(2) 2個のサイコロを振った結果を10回分用意します。次の例のように、1〜6の整数のペア(リスト)を10組含むarrayを生成して、変数 dice に保存してください。
In [3]:
dice = randint(1,7,[10,2])
dice
Out[3]:
(3) 変数 dice に保存されたそれぞれの結果に対して、次の例のように、2個のサイコロの目の合計を計算してください。(計算結果はリストに保存すること。)
In [4]:
[a+b for (a,b) in dice]
Out[4]:
(4) 2個のサイコロの目の合計を1000回分用意して、2〜12のそれぞれの回数をヒストグラムに表示してください。
ヒント:オプション bins=11, range=(1.5, 12.5) を指定するときれいに描けます。
In [5]:
dice = randint(1,7,[1000,2])
sums = [a+b for (a,b) in dice]
plt.hist(sums, bins=11, range=(1.5, 12.5))
Out[5]:
(5) 0≦x≦1 の範囲を等分した10個の点 data_x = np.linspace(0,1,10) に対して、sin(2πx) の値を格納したarrayを作成して、変数 data_y に保存しなさい。
さらに、data_y に含まれるそれぞれの値に、標準偏差 0.3 の正規分布に従う乱数を加えたarrayを作成して、変数 data_t に保存した後、(data_x, data_t) を散布図に表示しなさい。
In [6]:
from numpy.random import normal
data_x = np.linspace(0,1,10)
data_y = np.sin(2*np.pi*data_x)
data_t = data_y + normal(loc=0, scale=0.3, size=len(data_y))
plt.scatter(data_x, data_t)
Out[6]: