利用numpy資料分析 酒鬼漫步

2021-10-06 09:09:17 字數 1306 閱讀 7246

在一片空曠的平地上,有乙個酒鬼,他最初停留在原點的位置,這個酒鬼每走一步時,方向是不確定的,在經過時間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編寫的,因此你可以體驗在...