スポンサーリンク

NumPyで乱数を生成

まずは、NumPyで乱数を生成します。

numpyモジュールをimportします。

import numpy as np

例えば、下記のように一様乱数を5個生成します。

npData = np.random.rand(5)

また、例えば、平均が5、標準偏差が2の正規分布の乱数を5個生成します。

参考:Pythonで正規分布の乱数を発生させて統計情報を算出

npData = np.random.normal(5, 2, 5)

スポンサーリンク

datetime64型の日付データをdate_range()で生成

pandasモジュールをimportします。

import pandas as pd

date_range()でdatetime64型の日付データを生成します。

参考:[Python]pandasのdate_range()で時系列データを生成

下記は、2018/01/05から5日分生成します。

date = pd.date_range('2018-01-05', periods=5)

DataFrame()で日付データをインデックスに、値をNumPyで生成した乱数を設定

DataFrame()で日付データをインデックスに、値をNumPyで生成した乱数を設定します。

参考:[Python]NumPy配列からpandasのDataFrameに変換

df = pd.DataFrame(npData, index=date)

スポンサーリンク

サンプルコード

下記がサンプルコードになります。

  $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import numpy as np
import pandas as pd

#乱数を生成
npData = np.random.rand(5)
print(npData)

#datetime64型の日付データを生成
date = pd.date_range('2018-01-05', periods=5)
print(date)

#DataFrameを作成
df = pd.DataFrame(npData, index=date)
df.columns = ['col1']
print(df)

#正規分布の乱数を生成
npData = np.random.normal(5, 2, 5)

#DataFrameを作成
df = pd.DataFrame(npData, index=date)
df.columns = ['col1']
print(df)

下記が実行結果になります。
 $ ./sample.py 
[ 0.13031062  0.37094273  0.48169719  0.20669585  0.47684065]
DatetimeIndex(['2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08',
               '2018-01-09'],
              dtype='datetime64[ns]', freq='D')
                col1
2018-01-05  0.130311
2018-01-06  0.370943
2018-01-07  0.481697
2018-01-08  0.206696
2018-01-09  0.476841
                col1
2018-01-05  7.224093
2018-01-06  5.537418
2018-01-07  4.127298
2018-01-08  4.603911
2018-01-09  4.052134

スポンサーリンク