首页 > 编程语言 >数学与统计计算:Python math 与 statistics库基础教程

数学与统计计算:Python math 与 statistics库基础教程

时间:2024-11-11 18:19:35浏览次数:6  
标签:statistics 计算 Python 基础教程 print data math mean

数学与统计计算:Python mathstatistics 库基础教程

在数据分析、机器学习和科学计算中,数学和统计学是两个至关重要的基础。Python 提供了强大的内置库 mathstatistics,可以帮助我们快速、方便地完成常见的数学和统计计算。本篇博客将介绍 mathstatistics 库中的基础函数,并提供一些实际应用示例,帮助您掌握这些工具的使用。

一、math 库基础

math 库是 Python 内置的数学函数库,提供了丰富的数学计算功能,如基本的代数运算、三角函数、对数和指数运算等。以下是 math 库中一些常用函数的介绍:

1. 基本数学函数

求绝对值:math.fabs(x)

返回 x 的绝对值(浮点数)。

import math

print(math.fabs(-10))  # 输出:10.0
四舍五入:math.ceil(x)math.floor(x)
  • math.ceil(x):返回大于等于 x 的最小整数。
  • math.floor(x):返回小于等于 x 的最大整数。
print(math.ceil(4.3))  # 输出:5
print(math.floor(4.7)) # 输出:4
幂次方和平方根:math.pow(x, y)math.sqrt(x)
  • math.pow(x, y):计算 xy 次幂。
  • math.sqrt(x):计算 x 的平方根。
print(math.pow(2, 3))  # 输出:8.0
print(math.sqrt(16))   # 输出:4.0

2. 对数和指数函数

自然对数和常用对数:math.log(x)math.log10(x)
  • math.log(x):计算 x 的自然对数(以 e 为底)。
  • math.log10(x):计算 x 的常用对数(以 10 为底)。
print(math.log(2.7183))  # 输出:约等于 1
print(math.log10(100))   # 输出:2
指数函数:math.exp(x)
  • math.exp(x):计算 e^x,其中 e 为自然常数(约等于 2.718)。
print(math.exp(1))  # 输出:2.718...

3. 三角函数

math 库提供了常用的三角函数,比如 sincostan,它们的参数和返回值均为弧度制。如果需要将角度制转换为弧度制,可以使用 math.radians()

angle = 45
radian = math.radians(angle)
print(math.sin(radian))  # 输出:0.707...
print(math.cos(radian))  # 输出:0.707...

二、statistics 库基础

statistics 库提供了 Python 内置的统计函数,适合数据分析中常见的统计计算。接下来介绍一些常用的统计函数。

1. 求均值:statistics.mean(data)

返回数据集的平均值(均值)。

import statistics

data = [1, 2, 3, 4, 5]
print(statistics.mean(data))  # 输出:3

2. 求中位数:statistics.median(data)

返回数据集的中位数,适合数据集含有极值时使用。

print(statistics.median(data))  # 输出:3

3. 求众数:statistics.mode(data)

返回数据集中出现次数最多的值(众数)。如果数据集中有多个众数,该函数将返回第一个找到的众数。

data = [1, 1, 2, 3, 4]
print(statistics.mode(data))  # 输出:1

4. 求方差和标准差:statistics.variance(data)statistics.stdev(data)

  • statistics.variance(data):返回数据集的样本方差。
  • statistics.stdev(data):返回数据集的样本标准差。
print(statistics.variance(data))  # 输出:约 1.58
print(statistics.stdev(data))     # 输出:约 1.26

三、实用示例

示例 1:计算两个数的欧几里得距离

在二维空间中计算点 (x1, y1)(x2, y2) 的欧几里得距离:

import math

def euclidean_distance(x1, y1, x2, y2):
    return math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2))

print(euclidean_distance(1, 2, 4, 6))  # 输出:5.0

示例 2:统计分析一组数据的特征

分析一组分数数据,包括均值、中位数、方差和标准差:

import statistics

scores = [55, 80, 75, 90, 85, 70, 65, 95]

mean = statistics.mean(scores)
median = statistics.median(scores)
variance = statistics.variance(scores)
stdev = statistics.stdev(scores)

print(f"均值: {mean}")
print(f"中位数: {median}")
print(f"方差: {variance}")
print(f"标准差: {stdev}")

示例 3:使用 mathstatistics 库生成正态分布模拟

生成一个符合正态分布的随机数据,并计算其统计特征:

import random

# 生成 100 个均值为 0,标准差为 1 的正态分布数据
data = [random.gauss(0, 1) for _ in range(100)]

# 计算统计特征
mean = statistics.mean(data)
stdev = statistics.stdev(data)

print(f"生成数据的均值: {mean}")
print(f"生成数据的标准差: {stdev}")

建议

通过 mathstatistics 库,我们可以快速完成基础的数学和统计计算,这对数据分析和科学计算都非常有帮助。无论是基本的数学运算还是统计特征计算,Python 内置的这些函数都能满足大多数需求。掌握这些函数的使用,可以大大提高您的代码效率和计算能力。

示例 4:计算房价数据的标准分数 (Z-score)

标准分数(Z-score)是表示数据点与均值的偏离程度。Z-score 的计算公式为:
[
Z = \frac{X - \mu}{\sigma}
]
其中 ( X ) 是数据点,( \mu ) 是数据的均值,( \sigma ) 是标准差。我们可以利用 statistics 库中的均值和标准差函数来计算 Z-score。

import statistics

# 假设有一组房价数据
house_prices = [200000, 210000, 250000, 270000, 300000, 320000, 350000]

# 计算均值和标准差
mean_price = statistics.mean(house_prices)
stdev_price = statistics.stdev(house_prices)

# 计算每个房价的 Z-score
z_scores = [(price - mean_price) / stdev_price for price in house_prices]

print("房价的 Z-score 分数:", z_scores)

Z-score 帮助我们识别在一组数据中偏离均值较远的值,是数据标准化的重要步骤。

示例 5:投资回报率的年化计算

在金融领域,经常会计算投资的年化回报率。假设我们有每月的投资回报率数据,可以用 math 库计算年化收益率:

[
\text{年化回报率} = (1 + \text{平均月回报率})^{12} - 1
]

import math
import statistics

# 假设有一组每月的投资回报率数据(例如每月回报率为 0.02 表示 2%)
monthly_returns = [0.02, 0.015, 0.03, 0.025, 0.01, 0.02, 0.018, 0.03, 0.025, 0.015, 0.02, 0.03]

# 计算平均月回报率
mean_monthly_return = statistics.mean(monthly_returns)

# 计算年化回报率
annual_return = math.pow(1 + mean_monthly_return, 12) - 1
print(f"年化回报率: {annual_return:.2%}")

这里,.2% 的格式化表示输出保留两位小数并以百分比形式显示。年化回报率的计算对长期投资分析具有重要意义。

示例 6:创建简单的线性回归模型

线性回归用于拟合数据的趋势,并通过拟合的线性方程预测新的数据点。我们可以利用 statistics.mean() 和基础代数来实现简单的线性回归模型。

假设有一组数据,其中 x 是年份,y 是某公司的收入。

import statistics

# 样本数据
years = [1, 2, 3, 4, 5]
revenue = [100, 150, 200, 250, 300]

# 计算均值
mean_x = statistics.mean(years)
mean_y = statistics.mean(revenue)

# 计算斜率 (slope) 和截距 (intercept)
numerator = sum((x - mean_x) * (y - mean_y) for x, y in zip(years, revenue))
denominator = sum((x - mean_x) ** 2 for x in years)
slope = numerator / denominator
intercept = mean_y - slope * mean_x

print(f"线性回归方程: y = {slope:.2f}x + {intercept:.2f}")

# 使用线性回归预测第 6 年的收入
year_6_prediction = slope * 6 + intercept
print(f"第 6 年预测收入: {year_6_prediction:.2f}")

在这里,我们通过计算斜率和截距拟合出一条最佳直线,并用这条直线预测未来的值。这种简单的线性回归在数据趋势分析中非常有用。

结语

Python 的 mathstatistics 库提供了丰富的函数,可以帮助我们快速完成数学和统计分析。无论是基本的代数运算、三角计算,还是统计特征的提取和分析,这两个库都具备高效实用的功能。

希望本教程能帮助您熟悉 mathstatistics 库,为后续的数据处理和分析打下基础。

标签:statistics,计算,Python,基础教程,print,data,math,mean
From: https://blog.csdn.net/liaoqingjian/article/details/143692156

相关文章

  • 管理 Python 环境和依赖关系的工具 venv、virtualenv、pipenv 、poetry 、 miniforge
    管理Python环境和依赖关系的工具venv、virtualenv、pipenv、poetry、miniforge和anaconda的区别venv、virtualenv、pipenv、Poetry、Miniforge和Anaconda都是用于管理Python环境和依赖关系的工具,但它们在功能和使用场景上有一些显著的区别。以下是它们的主要区别:v......
  • 使用wxpython开发跨平台桌面应用,基类列表窗体的抽象封装处理
    在开发一套系统框架的时候,除了关注实现系统的功能实现外,我们对于系统的各个方面都是应该精益求精,以最少的编码做最好的事情,在开发的各个层次上,包括前端后端,界面处理、后端处理、常用辅助类、控件封装等等方面,我们都可以通过抽象、重用等方式,实现代码的优化、简化,以期达到快速开发......
  • Python之函数5.1
    函数:一、什么是函数定义:函数是组织好,可重复使用,用来实现单一,或关联功能的代码段二、pycharm中的表结构项目,包(init)或目录,py文件,py文件包含多个函数或类等三、函数的有哪些优点?1、降低代码冗余2、增加代码的复用性,提高开发效率3、提高程序的拓展性4、封装:就是把代码片段......
  • Python基础(1):初识python、环境配置、数据类型、循环语句
    简介:python是一个解释性、编译性、互动性和面向对象的脚本语言python是一种解释性语言:开发过程中没有了编译环节python是一种交互式语言:意味着可以在cmd窗口输入python,>>>后直接执行代码Python是面向对象的语言:意味着python支持面向对象的风格或代码封装在对象的编程技......
  • Python 提取PowerPoint文档中的图片
    如果你需要在多个PowerPoint演示文稿中使用相同的图片,直接从原始PPT中提取并保存图片可以避免重复寻找和下载。此外,将PPT中的重要图片提取出来可以将其作为备份,以防原文件损坏或丢失。本文将通过以下两个示例介绍如何使用Python提取PPT文档中的图片。Python提取指定幻灯片中的......
  • 使用python对图片resize
    使用python对图片resizefromPILimportImagedefresize_image(input_path,output_path,target_size):#打开图像withImage.open(input_path)asimg:#获取原始宽度和高度original_width,original_height=img.size#计......
  • ospf静态路由基础教程
     需要准备的设备如下(这边推荐把地址标出来防止敲的中途忘记)  我们这边给PC1和PC2顺便配置好 第一步,我们需配置端口,这边我给需要配置的端口地址圈起来我们已经清楚了每个路由器端口需要配置的地址,我们就可以开始配了 !!!第一台路由器是需要配置4个端口不要忘了!!!......
  • Ubuntu安装指定的python版本,不推荐直接装系统里
    Ubuntu安装指定的python版本,不推荐直接装系统里。因为依赖该版本的软件会打不开或崩掉(如ubuntu20.04的终端gnome-terminal依赖系统自带的python3.8,如果装成高版本,则终端只转圈,打不开) 如果硬要玩火,参见下述步骤。此处只做记录,不推荐这样搞。在conda虚拟环境里玩,稳当点。目前还没......
  • Python 学习记录 (4)
    Plotly常见可视化方案:以鸢尾花数据为例简单介绍:Ploty库也有大量统计可视化方案,并且这些可视化方案具有交互化属性。主要对鸢尾花数据进行处理与可视化。所展示的结果为交互界面的截图情况,这里不能进行交互。使用Plotly绘制散点图与箱型图,分类展示“花萼宽度”说明:类似'......
  • Python头歌~列表自学引导
    第一关,输入数据创建列表 第二关,计算每位选手的成绩 第三关,去除一个最高分和一个最低分 第四关,计算中位数成绩 第五关,去除弃权评委成绩 第六关,将平均成绩附加到列表末尾 第七关,读文件到二维列表 第八关,二维列表数据分析 第九关,成绩排序 ......