Python中Random和Math模塊學(xué)習(xí)筆記
由于最近經(jīng)常使用到Python中random,math和time``datetime模塊, 所以決定花時間系統(tǒng)的學(xué)習(xí)一下
1. math模塊
math中的函數(shù)不可以用于太過復(fù)雜的數(shù)的運算, 如果需要復(fù)雜數(shù)的運行最好使用cmath模塊中同名函數(shù), 如果想要更加高級的數(shù)學(xué)功能,可以考慮選擇標(biāo)準(zhǔn)庫之外的numpy和scipy模塊,它們不但支持?jǐn)?shù)組和矩陣運算,還有豐富的數(shù)學(xué)和物理方程可供使用
1.1. 數(shù)學(xué)常量
math.pi 這個數(shù)學(xué)常量等于 3.141592...
math.e 這個數(shù)學(xué)常量 e = 2.718281...,
1.2. 常用簡單函數(shù)
math.ceil(x) : 對x向上取整,返回最小整數(shù)值大于或者等于x
# -*- coding:utf-8 -*-
import math #僅在第一次聲明, 以下都將省略
print math.ceil(math.pi) #math.pi是圓周率pi, 類似于C/C++中的宏
//輸出4
math.floor(x) : 對x向下取整, 返回整數(shù)值小于或者等于x
>>> import math
>>> math.floor(math.pi)
3.0
math.pow(x,y) : 指數(shù)運算,得到x的y次方
>>> math.pow(2, 3)
8.0
math.log(x[, base]) : 對數(shù)運算,默認(rèn)基底為e的對數(shù)運算。使用base參數(shù)時,改變對數(shù)的基底, 變?yōu)橐詁ase為底的對數(shù)運算
>>> math.log(10)
2.302585092994046
>>> math.log(8, 2) #log(x)/log(base).
3.0
math.sqrt(x) 平方根計算
>>> math.sqrt(4)
2.0
math.fabs(x) 取絕對值
math.factorial(x) 求階乘, 即x!
math.exp(x) 求e的x次方
1.3. 三角函數(shù)
以下函數(shù)都接收一個弧度(radian)為單位的x作為參數(shù)
math.acos(x) #求arccos(x)
math.asin(x) #求arcsin(x)
math.atan(x) #求arctan(x)
math.cos(x) #求cos(x)
math.sin(x) #求sin(x)
math.tan(x) #求tan(x)
math.degrees(x) 角度制轉(zhuǎn)化為弧度制
math.radians(x) 弧度制轉(zhuǎn)化為角度制
>>> math.degrees(math.pi / 2)
90.0
1.5. 雙曲函數(shù)和特殊函數(shù)
math.sinh(x), math.cosh(x), math.tanh(x), math.asinh(x), math.acosh(x), math.atanh(x)
還有些函數(shù)基本沒用過
2. random模塊
random模塊的作用是產(chǎn)生隨機數(shù), 這個模塊實現(xiàn)了偽隨機數(shù)產(chǎn)生器
1.1. 常用函數(shù)
random.seed([x]) 用戶初始化一個隨機數(shù)種子, 可選參數(shù)可以是任何hashtable對象,默認(rèn)使用系統(tǒng)時間
random.randint(a, b) 返回一個a到b之間的整數(shù)
random.randrange([start], stop[, step]) 從指定范圍內(nèi),按指定基數(shù)遞增的集合中 獲取一個隨機數(shù)。如:random.randrange(10, 100, 2),結(jié)果相當(dāng)于從[10, 12, 14, 16, … 96, 98]序列中獲取一個隨機數(shù)。random.randrange(10, 100, 2)在結(jié)果上與 random.choice(range(10, 100, 2) 等效。
random.randrange(start, stop, step)等價于random.choice(range(start, stop, step))
>>> random.randrange(10, 100, 2)
90
1.2. 隨機挑選和排序
random.choice(sequence) : 從序列中獲取一個隨機元素. 參數(shù)sequence表示一個有序類型。這里要說明 一下:sequence在python不是一種特定的類型,而是泛指一系列的類型。list, tuple, 字符串都屬于sequence
>>> random.choice(range(10))
1
>>> random.choice((1, 2, 3, 4))
3
random.sample(sequence, k) # 從指定序列中隨機獲取指定長度k的片斷。sample函數(shù)不會修改原有序列
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> new_lst = random.sample(lst, 6)
>>> print new_lst
[8, 9, 2, 1, 5, 4]
>>> print lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(x[, random]),用于將一個列表中的元素打亂, 不會生成新的列表
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> random.shuffle(lst)
>>> print lst
[10, 5, 2, 7, 3, 9, 4, 8, 6, 1]
1.3. 隨機生成實數(shù)
生成的實數(shù)符合均勻分布(uniform distribution)
random.random() 隨機生成下一個實數(shù),它在[0,1)范圍內(nèi)。
random.uniform(a,b) 隨機生成下一個實數(shù),它在[a,b]范圍內(nèi)。
>>> random.random()
0.019433835195078797
>>> random.uniform(3, 8)
6.830376841208885
random.gauss(mu,sigma) 隨機生成符合高斯分布的隨機數(shù),mu,sigma為高斯分布的兩個參數(shù)。
random.expovariate(lambd) 隨機生成符合指數(shù)分布的隨機數(shù),lambd為指數(shù)分布的參數(shù)。
其余是一些目前沒用過的函數(shù), 以后用到了再補充
3. 參考鏈接
- 詳解Python中math和decimal模塊的解析與實踐
- Python內(nèi)置數(shù)學(xué)函數(shù)和math模塊使用指南
- python常用模塊(math itertools functools sys shutil)使用講解
- python數(shù)學(xué)模塊(math/decimal模塊)
- Python標(biāo)準(zhǔn)庫之Math,Random模塊使用詳解
- Python中非常實用的Math模塊函數(shù)教程詳解
- 表格梳理python內(nèi)置數(shù)學(xué)模塊math分析詳解
- python math模塊的基本使用教程
- 一看就懂得Python的math模塊
- Python math 模塊完全指南
相關(guān)文章
Python中的自定義函數(shù)學(xué)習(xí)筆記
這篇文章主要介紹了Python中的自定義函數(shù)學(xué)習(xí)筆記,本文講解了定義函數(shù)、callable函數(shù)、help函數(shù)等內(nèi)容,需要的朋友可以參考下2014-09-09
Python?中的lambda匿名函數(shù)和三元運算符
這篇文章主要介紹了Python?中的lambda匿名函數(shù)和三元運算符,使用關(guān)鍵字???lambda???定義,所以匿名函數(shù)又稱之為lambda表達式,下面文章更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-04-04
python數(shù)據(jù)類型之間怎么轉(zhuǎn)換技巧分享
在本篇文章里小編給大家分享的是關(guān)于python數(shù)據(jù)類型之間怎么轉(zhuǎn)換實例以及小技巧內(nèi)容,有興趣的朋友們參考下。2019-08-08
關(guān)于dataframe.query()篩選tips
在Pandas中,通過布爾索引或.query()方法可以實現(xiàn)對DataFrame中數(shù)據(jù)的篩選。例如,篩選特定列符合條件的行數(shù)據(jù)或排除某些類型值。此外,.query()方法還支持使用外部變量進行篩選。這些操作對數(shù)據(jù)處理非常有用,可以高效地進行數(shù)據(jù)清洗和預(yù)處理2024-09-09
django authenticate用戶身份認(rèn)證的項目實踐
Django的contrib.auth模塊中的authenticate()函數(shù)用于對用戶的憑據(jù)進行身份驗證,本文就來介紹一下django authenticate用戶身份認(rèn)證的使用,具有一定的參考價值,感興趣的可以了解一下2023-08-08

