始める無料で始める

すべてのランダムウォークを可視化する

all_walksはリストのリストです。各サブリストは、1回のランダムウォークを表します。このリストのリストをNumPy配列に変換すると、面白いグラフを作成できるようになります。matplotlib.pyplotはすでにpltとしてインポートされています。

入れ子のforループはすでにコード化されているので、心配する必要はありません。今は、このforループの後に続くコードに集中しましょう。

この演習はコースの一部です

Python中級

コースを見る

演習の手順

  • np.array()を使用して、all_walksをNumPy配列np_awに変換します。
  • np_awに対してplt.plot()を使ってみます。plt.show()も含めます。そのままでうまくいきますか?
  • np_awnp.transpose()を呼び出して、np_awを転置します。結果をnp_aw_tとします。これで、np_aw_tの各行は、5回のランダムウォークにおけるサイコロを1回振った後の位置を表します。
  • plt.plot()を使用してnp_aw_tを描画します。plt.show()も含めます。今度は見やすくなりましたか?

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# numpy and matplotlib imported, seed set.

# initialize and populate all_walks
all_walks = []
for i in range(5) :
    random_walk = [0]
    for x in range(100) :
        step = random_walk[-1]
        dice = np.random.randint(1,7)
        if dice <= 2:
            step = max(0, step - 1)
        elif dice <= 5:
            step = step + 1
        else:
            step = step + np.random.randint(1,7)
        random_walk.append(step)
    all_walks.append(random_walk)

# Convert all_walks to NumPy array: np_aw


# Plot np_aw and show


# Clear the figure
plt.clf()

# Transpose np_aw: np_aw_t


# Plot np_aw_t and show
コードを編集して実行