すべてのランダムウォークを可視化する
all_walksはリストのリストです。各サブリストは、1回のランダムウォークを表します。このリストのリストをNumPy配列に変換すると、面白いグラフを作成できるようになります。matplotlib.pyplotはすでにpltとしてインポートされています。
入れ子のforループはすでにコード化されているので、心配する必要はありません。今は、このforループの後に続くコードに集中しましょう。
この演習はコースの一部です
Python中級
演習の手順
np.array()を使用して、all_walksをNumPy配列np_awに変換します。np_awに対してplt.plot()を使ってみます。plt.show()も含めます。そのままでうまくいきますか?np_awにnp.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