社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python中数值相关的操作

生信修炼手册 • 5 年前 • 695 次点击  

欢迎关注”生信修炼手册”!


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

  1. int, 整数

  2. float,浮点数

  3. complex,复数

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

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

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函数用于求绝对值,用法如下

abs(3)

2. round

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

round(3.1415926)      #  3,默认只保留整数
round(3.1415926, 2) # 3.14, 第二个参数控制保留小数点后几位

3. divmod

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

divmod(7, 3)

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

4. pow

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

pow(2, 3)      # 2 ** 3, 结果为8
pow(2, 3, 3) # 2 ** 3 % 3, 结果为2

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

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

1. 常数

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

math.pi    # π
math.e # 自然常数
math.tau # 2π
math.inf # 无穷大
math.nan # 非数字

2. 常用函数

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. 幂函数与对数函数


返回值为浮点数




    
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。需要明确一点,这里的随机数本质是伪随机数。通过设置随机数发生器,可以使得每次随机抽样的结果都相同, 用法如下

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

常用的随机数操作如下

# 随机抽取一个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模块,常见操作如下

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

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

·end·

—如果喜欢,快分享给你的朋友们吧—



原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
  更多精彩



  写在最后


转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。


扫描下方二维码,关注我们,解锁更多精彩内容!


一个只分享干货的

生信公众号


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62400
 
695 次点击