2014年11月30日日曜日

141130(4)

NumPy


多重ランダムウォーク

>>> nwalks = 5
>>> nsteps = 50
>>> draws = np.random.randint(0, 2, size=(nwalks, nsteps))
>>> steps = np.where(draws > 0, 1, -1)
>>> steps
array([[-1, -1, -1,  1,  1,  1,  1, -1, -1, -1, -1, -1,  1, -1,  1, -1, -1,
         1, -1,  1,  1,  1,  1,  1, -1,  1,  1,  1,  1, -1, -1,  1, -1, -1,
        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1,  1, -1,  1,  1,  1],
       [-1,  1,  1, -1,  1, -1,  1, -1,  1, -1, -1,  1, -1, -1, -1, -1,  1,
         1,  1,  1,  1,  1, -1, -1,  1,  1, -1, -1, -1,  1, -1,  1, -1,  1,
        -1,  1, -1, -1,  1,  1,  1,  1, -1, -1, -1,  1,  1,  1, -1,  1],
       [ 1,  1, -1, -1, -1, -1,  1,  1, -1, -1, -1, -1,  1, -1,  1,  1,  1,
         1, -1, -1,  1, -1, -1, -1,  1, -1, -1,  1, -1,  1, -1, -1, -1, -1,
         1, -1,  1, -1,  1,  1, -1, -1, -1,  1, -1,  1,  1,  1,  1,  1],
       [-1, -1, -1, -1, -1,  1,  1, -1, -1, -1,  1,  1,  1, -1, -1, -1, -1,
         1,  1, -1, -1, -1,  1, -1,  1, -1, -1,  1, -1, -1,  1, -1, -1, -1,
        -1,  1,  1, -1, -1,  1, -1,  1, -1,  1, -1, -1, -1,  1,  1,  1],
       [-1, -1,  1,  1,  1, -1,  1, -1,  1, -1,  1, -1, -1, -1,  1, -1, -1,
         1,  1, -1, -1,  1,  1, -1,  1, -1,  1,  1, -1, -1, -1,  1,  1, -1,
         1, -1, -1, -1,  1,  1,  1,  1,  1,  1,  1, -1,  1,  1, -1,  1]])
>>> walk = steps.cumsum(1)
>>> walk
array([[ -1,  -2,  -3,  -2,  -1,   0,   1,   0,  -1,  -2,  -3,  -4,  -3,
         -4,  -3,  -4,  -5,  -4,  -5,  -4,  -3,  -2,  -1,   0,  -1,   0,
          1,   2,   3,   2,   1,   2,   1,   0,  -1,  -2,  -3,  -4,  -5,
         -6,  -7,  -8,  -9, -10,  -9,  -8,  -9,  -8,  -7,  -6],
       [ -1,   0,   1,   0,   1,   0,   1,   0,   1,   0,  -1,   0,  -1,
         -2,  -3,  -4,  -3,  -2,  -1,   0,   1,   2,   1,   0,   1,   2,
          1,   0,  -1,   0,  -1,   0,  -1,   0,  -1,   0,  -1,  -2,  -1,
          0,   1,   2,   1,   0,  -1,   0,   1,   2,   1,   2],
       [  1,   2,   1,   0,  -1,  -2,  -1,   0,  -1,  -2,  -3,  -4,  -3,
         -4,  -3,  -2,  -1,   0,  -1,  -2,  -1,  -2,  -3,  -4,  -3,  -4,
         -5,  -4,  -5,  -4,  -5,  -6,  -7,  -8,  -7,  -8,  -7,  -8,  -7,
         -6,  -7,  -8,  -9,  -8,  -9,  -8,  -7,  -6,  -5,  -4],
       [ -1,  -2,  -3,  -4,  -5,  -4,  -3,  -4,  -5,  -6,  -5,  -4,  -3,
         -4,  -5,  -6,  -7,  -6,  -5,  -6,  -7,  -8,  -7,  -8,  -7,  -8,
         -9,  -8,  -9, -10,  -9, -10, -11, -12, -13, -12, -11, -12, -13,
        -12, -13, -12, -13, -12, -13, -14, -15, -14, -13, -12],
       [ -1,  -2,  -1,   0,   1,   0,   1,   0,   1,   0,   1,   0,  -1,
         -2,  -1,  -2,  -3,  -2,  -1,  -2,  -3,  -2,  -1,  -2,  -1,  -2,
         -1,   0,  -1,  -2,  -3,  -2,  -1,  -2,  -1,  -2,  -3,  -4,  -3,
         -2,  -1,   0,   1,   2,   3,   2,   3,   4,   3,   4]])

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。