前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中数值相关的操作

python中数值相关的操作

作者头像
生信修炼手册
发布2020-05-07 16:30:41
1.2K0
发布2020-05-07 16:30:41
举报
文章被收录于专栏:生信修炼手册生信修炼手册

在python中,数值有以下3种类型

  1. int, 整数
  2. float,浮点数
  3. complex,复数

其中整数和浮点数都属于实数的范围,而复数使用到的情况较少,这里不做讨论。

字符型和布尔型的值可以转换为数值,方法如下

代码语言:javascript
复制
int(True)      # 结果为1
int(False)     # 结果为0
int('3')         # 结果为3
float('inf')    # 结果为inf
float('NaN') # 结果为nan
float('nan')  # 结果为nan
ord('A')       # 结果为65

最后一个函数比较特殊,ord函数根据ASCII码将单个字符转换为数值,与之相对,chr函数可以将数值转换为ASCII编码的字符。

通过上述代码可以发现,python中有两个特殊数值,一个是无穷inf,一个是nan。对于实数的运算,提供了以下4个内置函数

1. abs

abs函数用于求绝对值,用法如下

代码语言:javascript
复制
abs(3)
2. round

round函数对数值进行四舍五入,用法如下

代码语言:javascript
复制
round(3.1415926)      #  3,默认只保留整数
round(3.1415926, 2)  #  3.14, 第二个参数控制保留小数点后几位
3. divmod

divmod函数进行除法运算,保留商和余数,用法如下

代码语言:javascript
复制
divmod(7, 3)

返回值为商和余数构成的元组,上述语句的返回值为(2, 1)

4. pow

pow函数默认进行幂次运算,用法如下

代码语言:javascript
复制
pow(2, 3)      # 2 ** 3, 结果为8
pow(2, 3, 3)  # 2 ** 3 % 3, 结果为2

提供两个参数时,进行幂次运算,提供三个参数时,将前两个参数幂次运算的结果与第三个参数相除,取余数。

除了内置函数外,更多的实数运算可以通过内置模块math来操作,该模块定义了很多常见的数学运算。

1. 常数

在该模块中,提供了几个数学常量,比如π,自然常数等,写法如下

代码语言:javascript
复制
math.pi    # π
math.e     # 自然常数
math.tau  # 2π
math.inf   # 无穷大
math.nan # 非数字
2. 常用函数
代码语言:javascript
复制
math.ceil(4.1)          #  5, 向上取整
math.floor(4.1)        # 4, 向下取整
math.fabs(-3)          # 3, 绝对值
math.fsum((-1, 1))   # 0, 求和,返回值为浮点数
math.factorial(3)     # 6, 阶乘
math.comb(3,2)      # 3, 排列
math.perm(3,2)       # 6, 组合
math.prod((2, 3, 2)) #12,  累乘
math.isfinite(1)        # True, 如果一个数不是无穷或者NaN,返回True
math.isinf(math.inf) # True. 如果一个数数正或者负无穷大,返回True
math.isnan(math.nan) # True, 如果是NaN, 返回True
math.trunc(3.1)          # 3, 截取数值的整数部分
3. 幂函数与对数函数

返回值为浮点数

代码语言:javascript
复制
math.log(math.e)  # 自然对数
math.log(100, 10) # 第二个参数表示底数,log以10为底的对数
math.log2(4)         # log2
math.log10(100)   # log10
math.sqrt(4)         # 平凡根
math.pow(2, 3)     # 幂运算
math.exp(2)          # e ** 2

以上只是math模块中的部分函数,完整的函数列表请查看官方文档

https://docs.python.org/zh-cn/3/library/math.html

在实际工作中,对于数值我们还需要进行随机数操作,此时就需要用到内置模块random。需要明确一点,这里的随机数本质是伪随机数。通过设置随机数发生器,可以使得每次随机抽样的结果都相同, 用法如下

代码语言:javascript
复制
import random # 导入模块
random.seed(1)  # 设定随机数发生器
random.randrange(10) #随机抽样,结果为2
# 用相同的随机数发生器,再次抽样,结果完全相同
random.seed(1)
random.randrange(10)

常用的随机数操作如下

代码语言:javascript
复制
# 随机抽取一个0到10之间的整数
>>> random.randrange(10)
2
# 先模拟产生一个0到10,步长为5的序列,再随机抽取一个整数
>>> random.randrange(0, 10, 5)
5
# 随机抽取一个0到10之间的整数
>>> random.randint(0, 10)
7
>>> a = [1, 2, 3, 4, 5]
# 从序列中随机抽取一个元素
>>> random.choice(a)
4
# 从序列中随机抽取k个元素,无重复的随机抽样,返回子集
>>> random.sample(a, 2)
[1, 4]
#  随机打乱顺序
>>> random.shuffle(a)
>>> a
[2, 1, 5, 3, 4]
# 随机抽取一个0到1之间的浮点数
>>> random.random()
0.10222715811004823
#  随机抽取一个高斯分布的值
>>> random.gauss(0, 1)
-0.08735515600559883

以上只是random模块中的部分函数,完整的函数列表请查看官方文档

https://docs.python.org/zh-cn/3/library/random.html

对于一系列的数值,我们可以计算均值,中位数等统计指标,此时需要用到内置的statistics模块,常见操作如下

代码语言:javascript
复制
import statistics
# 计算平均数
>>> statistics.mean(a)
3
# 计算平均值,返回值为浮点数
>>> statistics.fmean(a)
3.0
# 计算四分位数
>>> statistics.quantiles(a)
[1.5, 3.0, 4.5]
# 计算中位数
>>> statistics.median(a)
3
# 计算标准差
>>> statistics.stdev(a)
1.5811388300841898
# 计算方差
>>> statistics.variance(a)
2.5

以上只是statistics模块中的部分函数,完整的函数列表请查看官方文档

https://docs.python.org/zh-cn/3/library/statistics.html

内置函数和内置模块提供了常见的数值操作,这些都是基础,需要熟练掌握。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. abs
  • 2. round
  • 3. divmod
  • 4. pow
  • 1. 常数
  • 2. 常用函数
  • 3. 幂函数与对数函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档