---
title: 14.Python 亂數與統計模組 By 彭彭
tags: 學習, 紀錄
---
# 14.Python 亂數與統計模組 By 彭彭
{%youtube -xwCu6PN1jU %}
## 亂數、統計模組
## 內建模組:
學習 ramdom模組 和statistics模組
1. ramdom模組
2. statistics模組
## 亂數模組
* 載入模組
import random
* 隨機選取
import random
random.choice([0,1,5,8]) 從列表中隨機選取1個資料
random.sample([0,1,5,8],2) 從列表中隨機選取2個資料
* 隨機調換順序
import random
data=[0,1,5,8]
random.shuffle(data)
print(data)
* 隨機亂數 (出現機率相同)
import random
ramdom. random() 取得0.0~1.0之間的隨機亂數
random. uniform(0.0,1.0) (指定0.0~1.0之間的隨機亂數)
* 常態分配亂數
import random
取得平均數100,標準差10的
常態分配亂數
random. normalvariate(100,10)
(第一個參數指定平均數,第二個參數指定標準差)

以此圖為例,常態分配會在90-110之間
只有少部分會在左右旁邊少數
## 統計模組
* 載入模組
import statistics
* 計算平均數 mean
import statistics
statistics.mean([1,4,6,9])
計算列表中數字的平均數
* 計算中位數 median
import statistics
statistics. median([1,4,6,9])
* 計算標準差 stdev
import statistics
statistics.stdev([1,4,6,9])
計算資料散佈的狀況
## Practice
### 隨機模組
#### 隨機選取
* choice 列表中隨機選一個數字
import random
data=random.choice([1,5,6,10,20])
print(data)
>1 隨機印出列表中的一個數字
* sample 列表中隨機挑多個數字
import random
data=random.sample([1,5,6,10,20],3)
print(data)
>[6,1,5]
#### 隨機調換順序(就是洗牌的概念)
* shuffle 列表中的數字就地調換後顯示
data=[1,5,8,20]
random.shuffle(data)
print(data)
>[1,20,8,5]
#### 隨機取得亂數
* random
data=random.random()
print(data)
>0.55
random模組中的random()表示0.0-1.0之間的隨機亂數
* uniform(x, y)
data=random.uniform(60,100)
print(data)
>62
兩數之間的隨機亂數
#### 取得 常態分配亂數
* normalvariate 常態分配
平均數100 標準差10 得到的資料多數在90-110之間 常態分配的效果
data=random.normalvariate(100,10)
print(data)
>98
* normalvariate 常態分配
平均數0 標準差5 得到的資料"多數"在-5~5之間 常態分配的效果
data=random.normalvariate(0,5)
print(data)
>1.0
### 統計模組
* 平均數mean
import statistics as stat 用別名
data=stat.mean([1,4,5,8])
print(data)
>4.5
(1,4,5,8的平均數是4.5)
* 中位數median
import statistics as stat 用別名
data=stat.median([1,2,4,5,8,100])
print(data)
> 4
中位數 會把極端數字排除
---
同樣數字用平均數算 得出17
import statistics as stat 用別名
data=stat.mean([1,2,4,5,8,100])
print(data)
> 17
---
* 標準差 Stdev
import statistics as stat 用別名
data=stat.stdev([1,2,4,5,8,100])
print(data)
>36.41820
代表資料散佈狀況 說明資料的差距是不是很大 這個例子因為有100導致之間差距大下面將100改成10以後 標準差變小
import statistics as stat 用別名
data=stat.stdev([1,2,4,5,8,10])
print(data)
>3.25
## End