跳转到内容

Python/Math

维基教科书,自由的教学读本

math

[编辑]
  • ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x
  • copysign:把y的正负号加到x前面,可以使用0
  • cos:求x的余弦,x必须是弧度
  • degrees:把x从弧度转换成角度
  • e:表示一个常量
  • exp:返回math.e,也就是2.71828的x次方
  • expm1:返回math.e的x(其值为2.71828)次方的值减1
  • fabs:返回x的绝对值
  • factorial:取x的阶乘的值
  • floor:取小于等于x的最大的整数值,如果x是一个整数,则返回自身
  • fmod:得到x/y的余数,其值是一个浮点数
  • frexp:返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
  • fsum:对迭代器里的每个元素进行求和操作
  • gcd:返回x和y的最大公约数
  • hypot:如果x是不是无穷大的数字,则返回True,否则返回False
  • isfinite:如果x是正无穷大或负无穷大,则返回True,否则返回False
  • isinf:如果x是正无穷大或负无穷大,则返回True,否则返回False
  • isnan:如果x不是数字True,否则返回False
  • ldexp:返回x*(2**i)的值
  • log:返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)
  • log10:返回x的以10为底的对数
  • log1p:返回x+1的自然对数(基数为e)的值
  • log2:返回x的基2对数
  • modf:返回由x的小数部分和整数部分组成的元组
  • pi:数字常量,圆周率
  • pow:返回x的y次方,即x**y
  • radians:把角度x转换成弧度
  • sin:求x(x为弧度)的正弦值
  • sqrt:求x的平方根
  • tan:返回x(x为弧度)的正切值
  • trunc:返回x的整数部分

Cmath

[编辑]

类似于math模块,但支持复数。

random

[编辑]
  • random.random()用于生成一个0到1的随机浮点数: 0 <= n < 1.0
  • random.uniform(a, b),用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b,
  • random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
  • random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效
  • random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。下面是使用choice的一些例子:
  • random.shuffle(x[, random]),用于将一个列表中的元素打乱。
  • random.sample(sequence, k),从指定序列中随机获取指定长度的片断。

Decimal

[编辑]

支持十进制浮点数运算:

import decimal
plainFloat = 1/3.0
print plainFloat # 0.3333333333333333
decFloat = decimal.Decimal("0.33333333333333333333333333333333333333")
print decFloat   # Decimal('0.33333333333333333333333333333333333333')
decFloat2 = decimal.Decimal(plainFloat)
print decFloat2  # Decimal('0.333333333333333314829616256247390992939472198486328125')

Fractions

[编辑]

通过Fraction类,实现了分数算术(有理算术)。这是不失精度的运算。

from fractions import Fraction
oneThird = Fraction(1, 3)
floatOneThird = 1/3.0
print Fraction(0.25)                  # 1/4
print Fraction(floatOneThird)         # 6004799503160661/18014398509481984
print Fraction(1, 3) * Fraction(2, 5) # 2/15

Statistics

[编辑]

Python 3.4开始支持该模块,提供了最基本的统计函数。

import statistics as stats
print stats.mean([1, 2, 3, 100]) # 26.5
print stats.median([1, 2, 3, 100]) # 2.5
print stats.mode([1, 1, 2, 3]) # 1
print stats.pstdev([1, 1, 2, 3]) # 0.82915...; population standard deviation
print stats.pvariance([1, 1, 2, 3]) # 0.6875; population variance