python的numpy中关于平均值的计算

NumPy均值计算完全指南

目录

  1. 基本使用方法
  2. 处理NaN值
  3. 高级参数配置
  4. 不同数据结构的均值计算
  5. 函数对比表
  6. 完整示例代码

1. 基本使用方法

一维数组均值计算

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
mean_value = np.mean(arr)
print(mean_value)  # 输出: 3.0

二维数组行列计算

arr_2d = np.array([[1, 2, 3], 
                   [4, 5, 6]])

# 列平均值(垂直方向)
print(np.mean(arr_2d, axis=0))  # [2.5 3.5 4.5]

# 行平均值(水平方向) 
print(np.mean(arr_2d, axis=1))  # [2. 5.]

2. 处理NaN值

问题现象

arr = np.array([1, 2, np.nan, 4])
print(np.mean(arr))  # 输出: nan

解决方案

# 方法1:使用nanmean
print(np.nanmean(arr))  # 2.333...

# 方法2:手动过滤
print(np.mean(arr[~np.isnan(arr)]))  # 2.333...

3. 高级参数配置

dtype参数

arr_int = np.array([1, 2, 3], dtype=np.int32)
print(np.mean(arr_int, dtype=np.float32))  # 2.0

keepdims参数

arr = np.array([[1, 2], 
                [3, 4]])
                
# 保持维度结构
print(np.mean(arr, axis=0, keepdims=True))  # [[2. 3.]]
print(np.mean(arr, axis=0, keepdims=False)) # [2. 3.]

4. 高级参数配置

import pandas as pd

# Series计算
s = pd.Series([1, 2, np.nan, 4])
print(s.mean())  # 2.333...

# DataFrame计算
df = pd.DataFrame({"A": [1, np.nan, 3], "B": [4, 5, 6]})
print(df.mean())
# 输出:
# A    2.0
# B    5.0

5. 函数对比表

函数描述NaN处理适用场景
np.mean标准均值函数不忽略常规数值计算
np.nanmeanNaN安全均值自动忽略含缺失值数据
pd.Series.meanPandas均值自动忽略数据分析
pd.DataFrame.mean数据框均值自动忽略表格数据处理

6. 完整示例代码

import numpy as np
import pandas as pd

# 基础计算示例
data = np.array([10, 20, 30, np.nan])
print(f"标准均值: {np.mean(data)}")  # nan
print(f"安全均值: {np.nanmean(data):.2f}")  # 20.00

# 多维数组示例
matrix = np.random.rand(3, 4)
print("列均值:", np.mean(matrix, axis=0))
print("行均值:", np.mean(matrix, axis=1))

# Pandas示例
df = pd.DataFrame({"成绩": [85, 90, np.nan, 78],
                   "年龄": [18, 20, 19, 21]})
print("\nDataFrame均值:")
print(df.mean())

最佳实践建议:

  1. 处理前先检查数据类型:arr.dtype
  2. 含NaN时优先使用nanmean
  3. 大数据集考虑使用dtype=np.float32节省内存
  4. 保持维度一致性有助于后续矩阵运算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨海深

感谢您的支持和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值