国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

python隨機漫步講解

極客小將2021-01-15-
簡介免費學習推薦:python視頻教程隨機漫步這次我們將使用python生成隨機漫步數據,然后用matplotlib的方式將這些數據呈現出來。隨機漫步每次行走都完全是隨機的,沒有明確的方向,結果是由一系列隨機決策決定的。你可以這樣認為,隨機漫步就是螞蟻在暈頭轉向的情況下,每次都沿隨機的方向所經過的路徑。

極客小將版權所有。

dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

免費學習推薦:python視頻教程dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

隨機漫步dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

這次我們將使用python生成隨機漫步數據,然后用matplotlib的方式將這些數據呈現出來。
隨機漫步每次行走都完全是隨機的,沒有明確的方向,結果是由一系列隨機決策決定的。你可以這樣認為,隨機漫步就是螞蟻在暈頭轉向的情況下,每次都沿隨機的方向所經過的路徑。dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

創建RandomWalk()類dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

為了模擬隨機漫步,我們創建一個RandownWalk的類,它隨機選擇前進的方向。這個類需要三個屬性,其中一個是存儲隨機漫步次數的變量,其他兩個是列表,分別存儲隨機漫步經過的每個點的x坐標和y坐標。
RandomWalk類只包含兩個方法,init()和fill_walk(),其中后者計算隨機漫步經過的所有點,下面是__init__():dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

from random import choiceclass RandomWalk(): """一個生成隨機漫步數據的類""" def __init__(self, number_points=5000): """初始化隨機漫步的屬性""" self.number_points = number_points # 所有隨機漫步都始于(0,0) self.x_values = [0] self.y_values = [0]

為做出隨機決策,我們將所有可能的選擇都存儲到一個列表中,并在每次做出決策時都使用choice()來決定使用哪種選擇,然后我們將隨機漫步的默認點數設置為5000,然后我們創建了兩個用于存儲x值和y值的列表,并讓每次漫步都是從(0,0)開始出發。dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

選擇方向dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

def fill_walk(self): """計算隨機漫步中包含的所有點""" # 不斷漫步,直到列表達到指定的長度 while len(self.x_values) < self.number_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 # 計算下一個點的x和y值 next_x = self.x_values[-1] + x_step next_y = self.y_values[-1] + y_step self.x_values.append(next_x) self.y_values.append(next_y)

我們建立了一個循環,這個循環不斷進行,直到漫步包含所有需數量的點。這個方法的主要部分告訴python如何模擬四種漫步決定:向左走還是向右走?向上走還是向下走?沿著指定的方向走多遠?
我們使用choice([1, -1])給x_direction選擇一個值,結果要么是表示向右走的1,要么是表示向左走的-1,接下來choice([0, 1, 2, 3, 4])隨機選擇一個0~4之間的數,告訴python沿著指定方向走多遠。
我們將移動方向乘以移動距離,以確定沿x軸和y軸移動的距離。如果x_step為正,就將向右移動,為負向左移動,而為0將垂直移動,y_step為正向上移動,為負向下移動,為0則水平移動,如果兩個都為0那么就以為著在原地踏步,我們拒絕這種情況,接著執行下一次循環。
為獲取隨機漫步的下一個點的x值,我們將x_step和x_values的**后一個值相加,對于y值也做同樣的處理。獲得下一個點的x值和y值之后,我們將它分別附加到列表x_values和y_values的末尾。dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

繪制隨機漫步圖dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

我們將上面創建RandomWalk類的py文件命名為random_walk.py。
下面的代碼將隨機漫步的所有點都繪制出來:dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 創建一個RandWalk實例,并將其包含的點都繪制出來rw = RandomWalk(5000)rw.fill_walk()plt.scatter(rw.x_values, rw.y_values, s=15)plt.show()

我們首先導入了模塊pyplot和RandomWalk類,然后創建了一個RandomWalk實例,并將其存儲到rw中,再調用fill_walk(),下圖就是顯示了包含了5000個點的隨機漫步圖。dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

模擬多次隨機漫步dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

每次隨機漫步都不相同,因此探索可能生成的各種模式很有趣。在不多次運行程序的情況下使用前面的代碼模擬多次隨機漫步,一種辦法就是將前面的代碼放進一個while循環中,如下所示:dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import matplotlib.pyplot as pltfrom random_walk import RandomWalkwhile True: # 創建一個RandWalk實例,并將其包含的點都繪制出來 rw = RandomWalk(5000) rw.fill_walk() plt.scatter(rw.x_values, rw.y_values, s=1) plt.show() keep_running = input('Make another walk? (y/n) : ') if keep_running == 'n': break

這些代碼模擬一次隨機漫步,如果你輸入y則再繼續模擬生成一次隨機漫步,輸入n的話就退出程序了。dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

給點著色dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

我們將使用顏色映射出漫步中個點的先后順序,并刪除各個點的黑色輪廓,讓他們顏色更加明顯。為根據漫步中各點的先后順序進行著色,我們傳遞參數c,并設置一個列表,其中包含各點的先后順序。由于這些點都是按順序繪制的,因此參數c指定的列表只需包含數字1~5000即可。如下所示:dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import matplotlib.pyplot as pltfrom random_walk import RandomWalkwhile True: # 創建一個RandWalk實例,并將其包含的點都繪制出來 rw = RandomWalk(5000) rw.fill_walk() point_numbers = list(range(rw.number_points)) plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=1) plt.show() keep_running = input('Make another walk? (y/n) : ') if keep_running == 'n': break

我們使用range生成了一個數字列表,其中包含的數字與漫步包含的點數相同。接下來,我們將這個列表存儲到point_numbers中,以方便使用它設置每個漫步點的顏色。我們將每個參數c設置為point_numbers,指定顏色映射為藍色,并傳遞實參edgecolors以刪除每個點周圍的輪廓。**終的隨機漫步圖由淺藍色漸變為深藍色。如下圖所示:
dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

重新繪制起點和終點dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

除了給隨機漫步各個點著色,以指出他們的先后順序外,如果還能呈現隨機漫步的終點和起點就更好了。為此,可在繪制隨機漫步圖后重新繪制隨機漫步的起點和終點。我們讓起點和終點變得更大,并顯示為不同的顏色,以突出它們,如下所示:dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

import matplotlib.pyplot as pltfrom random_walk import RandomWalkwhile True: # 創建一個RandWalk實例,并將其包含的點都繪制出來 rw = RandomWalk(5000) rw.fill_walk() point_numbers = list(range(rw.number_points)) plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=1) # 突出起點和終點 plt.scatter(0, 0, c='green', edgecolors='none', s=100) plt.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100) plt.show() keep_running = input('Make another walk? (y/n) : ') if keep_running == 'n': break

dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

為突出起點,我們使用綠色繪制點(0,0),并使其比其它點大。為突出終點,我們在漫步包含的**后一個x值和y值處繪制一個點,使其為紅色,并比其它點大。運行代碼,將準確知道每次隨機漫步的起點和終點。dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

隱藏坐標軸dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

下面來隱藏坐標軸,以免我們注意點是坐標軸而不是隨機漫步路徑。要隱藏坐標做代碼如下:dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

# 隱藏坐標軸plt.axes().get_xaxis().set_visible(False)plt.axes().get_yaxis().set_visible(False)

為修改坐標軸,使用函數plt.axes()來將每條坐標軸的可見性設置為False。圖如下:
dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

相關免費學習推薦:python教程(視頻)dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以上就是python隨機漫步講解的詳細內容,更多請關注少兒編程網其它相關文章!dsI少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

        激情五月开心婷婷| 最新天堂中文在线| 中国黄色片一级| 成年人在线观看视频免费| 久激情内射婷内射蜜桃| 日本黄色a视频| 亚洲最新免费视频| 咪咪色在线视频| 国产日韩欧美大片| 国产成人免费高清视频| 国产香蕉一区二区三区| 99久久99久久精品| 国产a级黄色大片| 欧美黄色免费网址| 国产极品在线视频| 91精品无人成人www| 亚洲高清免费在线观看| 制服丝袜中文字幕第一页| 性生生活大片免费看视频| 久久久精品视频国产| 色中文字幕在线观看| 麻豆视频传媒入口| 久草免费福利在线| 少妇性l交大片| 尤物国产在线观看| wwwwww欧美| 男人揉女人奶房视频60分 | 亚欧美在线观看| 日本免费色视频| 99精品一级欧美片免费播放| 日本男女交配视频| 国产无套粉嫩白浆内谢的出处| 日韩成人精品视频在线观看| 少妇高潮大叫好爽喷水| 哪个网站能看毛片| 日本精品免费视频| 日韩毛片在线免费看| 日本久久高清视频| 少妇高清精品毛片在线视频| 婷婷激情5月天| 精品欧美一区免费观看α√| 一区二区三区国产免费| 欧美一级欧美一级| 九一精品久久久| 日本在线观看a| 日本一区午夜艳熟免费| 无尽裸体动漫2d在线观看| 一本久道高清无码视频| 91香蕉视频在线观看视频| 激情五月宗合网| 成人在线免费观看网址| 一道本视频在线观看| 欧美在线观看视频免费| 一级日本黄色片| 日本在线观看免费视频| 国产精品网站免费| 国产精品h视频| 91制片厂毛片| 欧美aⅴ在线观看| www国产精品内射老熟女| 超碰成人在线免费观看| 一本色道久久亚洲综合精品蜜桃| 女人天堂av手机在线| 国产精品亚洲天堂| 午夜天堂在线视频| 午夜xxxxx| www.成年人| 亚洲制服在线观看| 中文字幕久久av| 中文字幕日韩久久| 三级一区二区三区| 91网址在线观看精品| 日韩视频在线免费播放| 手机免费看av网站| 欧美日韩午夜爽爽| 日b视频免费观看| 欧美一级免费播放| 国产精品成人久久电影| 99999精品视频| 日本在线观看a| 在线观看国产福利| 偷拍盗摄高潮叫床对白清晰| 久久天天东北熟女毛茸茸| 精品久久久无码人妻字幂| 国产一区二区四区| 中文字幕乱码人妻综合二区三区| 久久精品网站视频| 在线看免费毛片| 欧美狂野激情性xxxx在线观| 人妻久久久一区二区三区| 久久久噜噜噜www成人网| 欧美wwwwwww| japanese在线播放| mm1313亚洲国产精品无码试看| 天天干天天干天天干天天干天天干| 污污的视频免费| www.在线观看av| 久草青青在线观看| 免费观看国产视频在线| 男人揉女人奶房视频60分| 亚洲天堂一区二区在线观看| 成人免费观看cn| 欧美日韩在线免费观看视频| 久久综合久久久久| 高清一区在线观看| 波多野结衣之无限发射| 亚洲欧美aaa| 日本在线xxx| 天天在线免费视频| 999这里有精品| 亚洲色图38p| 久久精品国产sm调教网站演员| 91av视频免费观看| jizzjizzxxxx| 日韩激情视频一区二区| www.久久久久久久久久久| 欧美v在线观看| 国产精品网站免费| 日韩美女爱爱视频| 国产成人精品免费看在线播放| 亚洲综合婷婷久久| 成人在线激情网| 久久久久狠狠高潮亚洲精品| 国产不卡一区二区视频| 亚洲美女自拍偷拍| 日本77777| wwwwww欧美| av 日韩 人妻 黑人 综合 无码| 天天碰免费视频| 亚洲精品无码国产| 国产精品嫩草影院8vv8| 五月天激情播播| 青青在线视频免费| 欧美极品少妇无套实战| 亚洲精品在线视频播放| 国产又大又硬又粗| 免费看日本毛片| 黄色a级片免费看| 欧美无砖专区免费| 精品一区二区成人免费视频| 999精彩视频| www.色偷偷.com| 日韩精品xxxx| 成年在线观看视频| 日本黄网站色大片免费观看| 中文字幕资源在线观看| 青娱乐自拍偷拍| 色综合色综合色综合色综合| 国产裸体舞一区二区三区| av天堂永久资源网| 玖玖精品在线视频| 精品人妻一区二区三区四区在线| 欧妇女乱妇女乱视频| 欧美a级黄色大片| 成年丰满熟妇午夜免费视频| 国产 日韩 亚洲 欧美| 欧美中日韩在线| 亚洲 自拍 另类小说综合图区| 青青视频免费在线| www日韩视频| 男人舔女人下面高潮视频| 一区二区成人网| 婷婷免费在线观看| 国产96在线 | 亚洲| 老子影院午夜伦不卡大全| 18黄暴禁片在线观看| 国产成人精品视频免费看| 久久久久久久久久福利| 玩弄japan白嫩少妇hd| 久久精品视频91| 午夜大片在线观看| 在线观看成人免费| 蜜臀精品一区二区| 欧美一级片中文字幕| 国产中文字幕在线免费观看| 国产情侣av自拍| 成人性生交视频免费观看| 男女曰b免费视频| 在线观看视频黄色| 男女视频网站在线观看| 国产精品区在线| 黑人粗进入欧美aaaaa| 亚洲自拍偷拍一区二区三区| 久久精品视频16| 天天影视色综合| 欧美成年人视频在线观看| 草草草视频在线观看| 国产福利一区视频| 国产高清精品在线观看| 国产日本欧美在线| 日本成人在线免费视频| 午夜探花在线观看| 91视频福利网| 久久久久狠狠高潮亚洲精品| 久久免费看毛片| 日韩av片在线看| 国产亚洲精品网站| 天堂8在线天堂资源bt| 手机av在线网| 免费网站在线观看黄|