当前位置:   article > 正文

Python常用库(二):数学计算(random/math/statistics)_python statistics库

python statistics库

1. 介绍

数学计算模块主要包括random、math、statistics三个模块,每个模块的负责区域

  • random: 用于生成各类随机数

  • math: 提供了许多数学运算函数,返回值一般都是浮点数

  • statistics: 用于数据统计计算;

2. random:随机

2.1 随机数

import random

if __name__ == '__main__':
    print("生成随机整数( 1 =< X <= 100 ):", random.randint(1100))
    # 返回 [0.0, 1.0) 范围内的下一个随机浮点数。
    print("生成随机浮点数( 0.0 <= X < 1.0 ):", random.random())
    print("生成随机浮点数( 1 =< X <= 10 ):", random.uniform(110))
    print("从[0,2,4,6,8]随机生成:", random.randrange(0102))
    
# -------------------------------- 输出 --------------------------------   
生成随机整数( 1 =< X <= 100 ): 40
生成随机浮点数( 0.0 <= X < 1.0 ): 0.6337783120322614
生成随机浮点数( 1 =< X <= 10 ): 1.0035531015062091
从[0,2,4,6,8]随机生成: 4
  • 1

random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数;

2.2 列表相关

import random

if __name__ == '__main__':
    list_var = [12345678910]
    print("----------------------random.choice:随机取一个----------------------")
    # 随机取出一个元素
    print("从列表{}中,随机取出一个元素:{}".format(list_var, random.choice(list_var)))

    print("----------------------random.sample:随机取多个----------------------")
    # 随机取出多个元素
    print("从列表{}中,随机取出3个元素:{}".format(list_var, random.sample(list_var, 3)))

    # 打乱列表
    print("----------------------random.shuffle:打乱列表----------------------")
    print("打乱前:", list_var)
    random.shuffle(list_var)
    print("打乱后:", list_var)
    
# ----------------- 输出 --------------------------------   
----------------------random.choice:随机取一个----------------------
从列表[12345678910]中,随机取出一个元素:5
----------------------random.sample:随机取多个----------------------
从列表[12345678910]中,随机取出3个元素:[146]
----------------------random.shuffle:打乱列表----------------------
打乱前: [12345678910]
打乱后: [19548723106]
  • 1

更多使用访问,可查看官方文档:https://docs.python.org/zh-cn/3/library/random.html

3.math:数学计算

import math

if __name__ == '__main__':
    print("----------------------------- 常量值 ---------------------------------")
    print("math.inf,正无穷大:", math.inf)
    print("math.nan,非法数值:", math.nan)
    print("math.pi,π圆周率:", math.pi)

    print("----------------------------- 取整  ---------------------------------")
    print("6.6666 向上取整:", math.ceil(6.6666))
    print("6.6666 向下取整:", math.floor(6.6666))
    print("----------------------------- 浮点数处理 ---------------------------------")
    print("求浮点整数部分:", math.trunc(6.1234))
    print("求浮点小数部分:", math.modf(6.1234))

    print("----------------------------- 判断  ---------------------------------")
    print("判断 x 是否是无穷大:", math.isinf(100))
    print("判断 x 是否是无穷大:", math.isinf(math.inf))
    print("判断 x 是否是非法数值:", math.isnan(math.nan))
    print("判断两值是否接近|10-10.34| <= 0.34:", math.isclose(1010.34, abs_tol=0.34))
    print("判断两值是否接近|10-10.35| <= 0.34:", math.isclose(1010.35, abs_tol=0.34))

    print("----------------------------- 其他 ---------------------------------")
    print("求5的阶乘(5*4*3*2*1):", math.factorial(5))
    print("求(22,8,16)最大公约数:", math.gcd(22816))
    
#################################### 输出 ####################################
----------------------------- 常量值 ---------------------------------
math.inf,正无穷大: inf
math.nan,非法数值: nan
math.pi,π圆周率: 3.141592653589793
----------------------------- 取整  ---------------------------------
6.6666 向上取整: 7
6.6666 向下取整: 6
----------------------------- 浮点数处理 ---------------------------------
求浮点整数部分: 6
求浮点小数部分: (0.123400000000000186.0)
----------------------------- 判断  ---------------------------------
判断 x 是否是无穷大: False
判断 x 是否是无穷大: True
判断 x 是否是非法数值: True
判断两值是否接近|10-10.34| <= 0.34True
判断两值是否接近|10-10.35| <= 0.34False
----------------------------- 其他 ---------------------------------
5的阶乘(5*4*3*2*1): 120
求(22,8,16)最大公约数: 2
  • 1

更多使用访问,可查看官方文档:https://docs.python.org/zh-cn/3/library/math.html#number-theoretic-and-representation-functions

4. statistics: 数学统计

import statistics

if __name__ == '__main__':
    print("---------------------------求平均数------------------------------------")
    print("求[1,2,3,4,5.5]平均数:", statistics.mean([12345.5]))
    # fmean 运行速度比mean快
    print("求[1,2,3,4,5.5]平均数:", statistics.fmean([12345.5]))
    print("---------------------------求中位数------------------------------------")
    # 取中位数
    print("求[1, 2, 3]中位数:", statistics.median([123]))
    # 总数为偶数时,中位数将通过对两个中间值求平均
    print("求[1, 2, 3, 4]中位数:", statistics.median([1234]))
    # 总数为偶数时,将返回两个中间值中较小的那个
    print("求[1, 2, 3, 4]中位数:", statistics.median_low([1234]))
    # 总数为偶数时,将返回两个中间值中较大的那个
    print("求[1, 2, 3, 4]中位数:", statistics.median_high([1234]))
    print("---------------------------求频繁数------------------------------------")
    # 只取一个
    print("求[1,2,3,4,4]经常出现数:", statistics.mode([12,  344]))
    print("求'abbbccc'经常出现数:", statistics.mode('abbbccc'))
    # 取多个
    print("求[1,2,3,3,4,4]经常出现数:", statistics.multimode([123344]))
    print("求'abbbccc'经常出现数:", statistics.multimode('abbbccc'))
    
#################################### 输出 ####################################
---------------------------求平均数------------------------------------
求[1,2,3,4,5.5]平均数: 3.1
求[1,2,3,4,5.5]平均数: 3.1
---------------------------求中位数------------------------------------
求[123]中位数: 2
求[1234]中位数: 2.5
求[1234]中位数: 2
求[1234]中位数: 3
---------------------------求频繁数------------------------------------
求[1,2,3,4,4]经常出现数: 4
'abbbccc'经常出现数: b
求[1,2,3,3,4,4]经常出现数: [34]
'abbbccc'经常出现数: ['b''c']
  • 1

微信搜索【猿码记】查看更多文章

本文由 mdnice 多平台发布

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/868416
推荐阅读
相关标签
  

闽ICP备14008679号