1. 程式人生 > 其它 >python--常用數學類庫math、random、array

python--常用數學類庫math、random、array

技術標籤:Python

Python的math模組

1、常用match模組
函式數學表示含義
圓周率piππ的近似值,15位小數
自然常數ee的近似值,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 codeC TypePython TypeMinimum Size in bytes
‘c’charcharacter1
‘b’signed charint1
‘B’unsigned charint1
‘u’Py_UNICODEUnicode character2(see note)
‘h’sigened shortint2
‘H’unsigened shortint2
‘i’signed intint2
‘I’unsigend intlong2
‘l’signed longint4
‘L’unsigned longlong4
‘f’floatfloat4
‘d’doublefloat8

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可以使速度快31
2
3
-4
5
6