在一片空曠的平地上,有乙個酒鬼,他最初停留在原點的位置,這個酒鬼每走一步時,方向是不確定的,在經過時間t之後,我們希望計算出這個酒鬼與原點的距離。
這個酒鬼走了2000步(每步0.5公尺),向前走一步記為1,向後走一步記為-1,當計算距原點的距離時,就是將所有的步數進行累計求和。
(1)使用random模組來隨機生成2000個0,1的值(擲硬幣值)(兩個結果任選乙個),利用函式使0變成-1
(2)使用cumsum()函式步數累計和,顯示酒鬼每一步距原點的距離
(3)找出酒鬼離原點正向最遠、反向最遠距離
(4)當酒鬼距原點的距離大於或等於15公尺時,總共走了多少步?如果沒有走到15公尺,請輸出:『酒鬼最遠也沒走到15公尺』
import numpy as np
# 使用random模組來隨機生成2000個0,1的值(擲硬幣值)(兩個結果任選乙個),利用函式使0變成-1
vector = np.random.choice([0
,1],
2000
)equal_to_zero =
(vector==0)
vector[equal_to_zero]=-
1# 使用cumsum()函式步數累計和,顯示酒鬼每一步距原點的距離
cum_sum = vector.cumsum()*
0.5print
('酒鬼每一步距原點的距離(公尺):\n'
,cum_sum)
# 找出酒鬼離原點正向最遠、反向最遠距離
print
('酒鬼距離原點正向最遠的距離:{}公尺'
.format
(cum_sum[cum_sum.argmax()]
))print
('酒鬼距離原點反向最遠的距離:{}公尺'
.format
(cum_sum[cum_sum.argmin()]
))# 當酒鬼距原點的距離大於或等於15公尺時,總共走了多少步?如果沒有走到15公尺,請輸出:'酒鬼最遠也沒走到15公尺'
count =0if
all(
abs(i)
<
15for i in cum_sum)
:print
('酒鬼最遠也沒走到15公尺'
)else
:for i in cum_sum:
count +=
1if i ==
15or i ==-15
:break
print
('首次大於或等於15公尺時,所走的步數:'
,count)
資料分析隨機漫步
from random import choice import matplotlib.pyplot as plt class randonmwalk 乙個生成隨機漫步資料的類 def init self,num points 5000 初始化隨機漫步的屬性 self.num points num ...
numpy資料分析
2020 11 2 import array arr array.array i list range 10 i表示整型,生成序列後不能改變資料型別 多維陣列ndarray方便處理多維度運算,運算效率高 nparr np.array list range 10 修改值,浮點數取整數段 nparr 2...
資料分析 Numpy
什麼是numpy numpy這個詞 於兩個單詞 numerical和python。numpy是python中的乙個運算速度非常快的乙個數學庫,它非常重視陣列,很多的資料科學的包都是依賴於numpy的。它允許你在python中進行向量和矩陣計算,並且由於許多底層函式實際上是用c編寫的,因此你可以體驗在...