python--常用數學類庫math、random、array
阿新 • • 發佈:2020-12-11
技術標籤:Python
Python的math模組
1、常用match模組
函式 | 數學表示 | 含義 |
---|---|---|
圓周率pi | π | π的近似值,15位小數 |
自然常數 | e | e的近似值,15位小數 |
ceil(x) | ⌈x⌉ | 對浮點數向上取整 |
floor(x) | ⌊x⌋ | 對浮點數向下取整 |
pow(x,y) | x^y | 計算x的y次方 |
exp(x) | e^x | 以e為基的指數 |
log(x) | ln x | 以e為基的對數 |
log10(x) | lg x | 以10為基的對數 |
sqrt(x) | √x | 平方根 |
函式 | 數學表示 | 含義 |
---|---|---|
exp(x) | e的x次冪 | |
degrees(x) | 將弧度值轉成角度 | |
radians(x) | 將角度制轉成弧度 | |
sin(x) | sin x | |
cos(x) | cos x | |
tan(x) | tan x | |
asin(x) | arcsin x | 反正弦函式,x∈[-1.0,1.0] |
acos(x) | arccos x | 反餘弦函式,x∈[-1.0,1.0] |
atan(x) | arctan x | 反正切函式,x∈[-1.0,1.0] |
2、常用隨機模組
函式 | 含義 |
---|---|
seed(x) | 給隨機數一個種子值,預設隨機種子是系統時鐘 |
random() | 生成一個[0 , 1.0]之間的隨機小數 |
uniform(a ,b) | 生成一個a到b之間的隨機小數 |
randint(a ,b) | 生成一個a到b之間的隨機整數 |
randrange(a ,b ,c) | 隨機生成一個從a開始到b以c遞增的數 |
choice(< list> ) | 從列表中隨機返回一個元素 |
shuffle(< list> ) | 將列表元素隨機打亂 |
sample(< list> ) | 從指定列表隨機獲取k個元素 |
3、 Python的array
Python中的array類似於列表list,如都可以動態增刪元素,但又有所區別,list中儲存的元素型別可以不一樣,但array中的元素型別必須完全一樣。
另外,由於list中的每一個元素同時儲存了其地址即指標(用以標記每一個元素的資料型別)和實際的資料,所以,在儲存及操作效率上,array又遠遠高於列表。
Type code | C Type | Python Type | Minimum Size in bytes |
---|---|---|---|
‘c’ | char | character | 1 |
‘b’ | signed char | int | 1 |
‘B’ | unsigned char | int | 1 |
‘u’ | Py_UNICODE | Unicode character | 2(see note) |
‘h’ | sigened short | int | 2 |
‘H’ | unsigened short | int | 2 |
‘i’ | signed int | int | 2 |
‘I’ | unsigend int | long | 2 |
‘l’ | signed long | int | 4 |
‘L’ | unsigned long | long | 4 |
‘f’ | float | float | 4 |
‘d’ | double | float | 8 |
1、常用math庫練習
import math
from math import *
print(e)
2.718281828459045
#e^x
print(exp(2))
7.38905609893065
#向上取整
print(ceil(2.7))
print(ceil(-4.1))
3
-4
#向下取整
print(floor(4.99))
print(floor(-4.99))
4
-5
#絕對值
print(fabs(-7))
7.0
#取整數部分
print(trunc(6.78987))
6
#階乘
print(factorial(4))
24
#最大公約數
print(gcd(6,8))
2
#勾股定理
print(hypot(8,6))
10.0
#log x 預設以e為底
print(log(e))
1.0
#lg x
print(log10(10))
1.0
# x ^ y
print(pow(3,3))
27.0
# √x
print(sqrt(9))
3.0
2、random庫練習
import random
random.seed()
print("隨機數1",random.random)
random.seed(1)
print("隨機數1",random.random())
random.seed(1)
print("隨機數2",random.random())
random.seed(3)
print("隨機數3",random.random())
隨機數1 <built-in method random of Random object at 0x000001CF2C54EE30>
隨機數1 0.13436424411240122
隨機數2 0.13436424411240122
隨機數3 0.23796462709189137
#範圍內的數
print(random.randint(0,100))
69
#偶數
print(random.randrange(0,100,2))
16
3、array
from array import *
vals=array('i',[1,2,3,-4,5,6])
print(vals)
array('i', [1, 2, 3, -4, 5, 6])
for i in range(6):
print(vals[i]) #和列表一樣,不過用array可以使速度快3倍
1
2
3
-4
5
6