python必備!關於python隨機漫步

2021-10-23 03:18:37 字數 2192 閱讀 6527

在本示例中將使用python來生成隨機漫步資料,在使用matplotlib將資料視覺化的呈現出來。

隨機漫步:每次行走都完全是隨機的,有一系列隨機決策決定。

首先建立randomwalk類存入random_wolk.py包中

#coding=gbk

from random import choice

class

randomwalk()

:def

__init__

(self,num_points =

5000):

"""初始化隨機漫步的屬性"""

self.num_points = num_points

#所有隨機步數都為0

self.x_values =[0

] self.y_values =[0

]def

fill_walk

(self)

:"""計算隨機漫步包含的所有點"""

#不斷漫步直到列表達到指定的寬度

while

len(self.x_values)

< self.num_points:

#決定前進的方向,以及前進的距離

x_direction = choice([1

,-1]

) x_distance = choice([0

,1,2

,3,4

])x_step = x_direction*x_distance

y_direction = choice([1

,-1]

) y_distance = choice([0

,1,2

,3,4

])y_step = y_direction*y_distance

#拒絕原地踏步

if x_step ==

0and y_step ==0:

continue

#計算下乙個點的x與y的值

next_x = self.x_values[-1

]+ x_step

next_y = self.y_values[-1

]+ y_step

下面**將隨機漫步的所有點都繪製出來,模擬多次隨機漫步,是指漫步圖樣式,重新繪製起點和終點,隱藏座標軸,調整尺寸以適應螢幕

#--coding:utf-8--

import matplotlib.pyplot as plt

from random_walk import randomwalk

while

true

:#建立乙個randomwalk例項,並將其包含的點都繪製出來

rw = randomwalk(

50000

) rw.fill_walk(

) plt.figure(figsize=(10

,6))

points_numbers =

list

(range

(rw.num_points)

) plt.scatter(rw.x_values,rw.y_values,c = points_numbers,

cmap = plt.cm.reds,edgecolors =

'none'

,s=1

) plt.axes(

).get_xaxis(

).set_visible(

false

) plt.axes(

).get_yaxis(

).set_visible(

false

) plt.scatter(0,

0,c =

'green'

,edgecolors =

'none'

,s=10

) plt.scatter(rw.x_values[-1

],rw.y_values[-1

],c =

'blue'

,edgecolors =

'none'

,s =10)

plt.show()

keep_running =

input

("make another walk? (y/n)"

)if keep_running ==

'n':

break

python必備單詞

print 輸出 input 輸入 str 字串 utf 8 字串的一種成熟編碼 ord 獲取字串的整數表示形式 chr 把編碼轉換成對應字元 encode 編碼指定為 bytes len 檢視乙個合集裡包含多少個元素 float 浮點數 list 可更改的有序合集 tuple 不可修改的有序列表,...

python必備單詞

學習從記憶開始,將一些知識背下來,對後面的學習會有極大的幫助 這42個單詞是學習python必須背會的單詞,也是 中常見的單詞。希望你能都背下來!1.adult d lt 成年人 2.authentication ent ke n 身份驗證 認證 鑑定 3.bit b t 稍微 小量 小塊 一點 4...

python必備操作

super 函式是用於呼叫父類 超類 的乙個方法。super 是用來解決多重繼承問題的,直接用類名呼叫父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查詢順序 mro 重複呼叫 鑽石繼承 等種種問題。mro 就是類的方法解析順序表,其實也就是繼承父類方法時的順序表。classa obj...