พล็อตการกระจายของข้อมูล
การสร้างภาพข้อมูลต่าง ๆ ทำให้เราออกนอกเรื่องไปนิดหน่อย แต่ยังมีโจทย์สำคัญที่ต้องแก้: โอกาสที่จะขึ้นไปถึงขั้นที่ 60 ของตึก Empire State Building คือเท่าไร?
สิ่งที่ต้องการรู้คือจุดปลายทางของ Random Walk ทั้งหมดที่จำลองไว้ จุดเหล่านี้มีการกระจายในลักษณะหนึ่ง ซึ่งสามารถแสดงผลได้ด้วยฮิสโตแกรม
หากโค้ดรันนานผิดปกติ อาจเป็นเพราะกำลังพล็อตฮิสโตแกรมจากข้อมูลผิดชุด ลองตรวจสอบดู
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python ระดับกลาง
คำแนะนำการฝึกหัด
- เพื่อให้มีจำนวนการจำลองเพียงพอ ให้เพิ่มรอบการจำลอง Random Walk เป็น 500 ครั้ง
- จาก
np_aw_tให้เลือกแถวสุดท้าย ซึ่งเก็บจุดปลายทางของ Random Walk ทั้ง 500 รอบ แล้วเก็บผลลัพธ์ที่ได้เป็น NumPy array ชื่อends - ใช้
plt.hist()สร้างฮิสโตแกรมของendsแล้วอย่าลืมเรียกplt.show()เพื่อแสดงกราฟ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# numpy and matplotlib imported, seed set
# Simulate random walk 500 times
all_walks = []
for i in range(500) :
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)
if np.random.rand() <= 0.001 :
step = 0
random_walk.append(step)
all_walks.append(random_walk)
# Create and plot np_aw_t
np_aw_t = np.transpose(np.array(all_walks))
# Select last row from np_aw_t: ends
____ = ____[____,____]
# Plot histogram of ends, display plot
____
____