当前位置: 首页 > web >正文

以下是 NumPy 在统计与矩阵运算中的核心用法总结

一、统计基础:用 NumPy 处理数据

1. 核心统计函数
操作函数场景示例
均值np.mean(arr)计算用户平均年龄、销售额均值
中位数np.median(arr)分析收入分布(抗极端值干扰)
标准差np.std(arr)评估数据波动(如股票价格稳定性)
方差np.var(arr)测量数据离散程度
分位数np.quantile(arr, 0.75)确定成绩排名的75%分界线
scores = np.array([88, 72, 95, 60, 85])
print(f"平均分: {np.mean(scores)}")     # 80.0
print(f"中位数: {np.median(scores)}")   # 85.0
print(f"标准差: {np.std(scores):.1f}")  # 12.8
2. 轴控制(axis参数)
  • 规则axis=0(列统计),axis=1(行统计)
data = np.array([[90, 85], [70, 92], [88, 78]])
print(np.mean(data, axis=0))  # 计算每科平均分 → [82.7 85.0]

二、矩阵运算:科学计算核心

1. 高频操作速查
操作函数/符号场景
矩阵创建np.array([[1,2],[3,4]])构建神经网络权重矩阵、图像像素矩阵
加法/减法+/-图像叠加、物理场叠加计算
矩阵乘法@ 或 np.dot()神经网络前向传播、3D变换
转置.T 或 np.transpose()数据格式转换、方程求解
逆矩阵np.linalg.inv()解线性方程组、坐标变换
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩阵乘法(点积)
print(A @ B)  # [[19 22], [43 50]]# 解方程 Ax = b
b = np.array([5, 11])
x = np.linalg.inv(A) @ b  # x = [1. 2.]
2. 常见误区
  • 维度不匹配:矩阵乘法 A(m×n) @ B(n×p) 要求中间维度一致
  • 逐元素乘 vs 矩阵乘* 是逐元素乘,@ 是矩阵乘法
print(A * B)  # 逐元素相乘 → [[5 12], [21 32]]
print(A @ B)  # 矩阵乘法 → [[19 22], [43 50]]

三、实战技巧扩展

1. 广播机制简化计算

不同形状的数组自动扩展维度计算:

matrix = np.array([[1, 2], [3, 4]])
vector = np.array([10, 20])
print(matrix + vector)  # [[11 22], [13 24]]
2. 与 Pandas 联动

将 DataFrame 转为 NumPy 数组进行高效计算:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
arr = df.to_numpy()  # 转为NumPy数组加速计算

四、下一步练习建议

  1. 统计实战:用 np.percentile() 分析某城市房价分布。
  2. 矩阵应用:手动实现最小二乘法求解线性回归参数。
  3. 性能对比:比较 NumPy 与纯 Python 列表的运算速度差异。

遇到维度错误时,优先检查 .shape 属性!

http://www.xdnf.cn/news/14335.html

相关文章:

  • linux msyql8 允许远程连接
  • java中扩展运算符
  • 《开窍》读书笔记8
  • 无线USB转换器TOS-WLink露面1个月以来总结
  • Cesium快速入门到精通系列教程九:Cesium 中高效添加和管理图标/标记的标准方式​​
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • csharp设计方法
  • 带中断计数器的UART接收中断程序 (8259@400H/402H)
  • RapidNJ软件的安装
  • 【Python 爬虫 防盗链】
  • 山东大学软件学院项目实训:基于大模型的模拟面试系统项目总结(九)
  • Apifox将base64转换为图片(调试时方便查看)
  • BeckHoff <---> Keyence (LJ-X8000) 2D相机 Profinet 通讯
  • IO之详解cin(c++IO关键理解)
  • 矩阵运算基础、矩阵求导
  • 《Apollo 配置中心在动态主题系统中的设计与扩展》
  • openeuler 系统—— 集成大模型分析日志中的错误信息生成故障原因报告
  • LeetCode - 34. 在排序数组中查找元素的第一个和最后一个位置
  • GTSAM中InitializePose3::initialize()使用详解
  • 数据目录:企业数据管理的核心引擎与最佳实践
  • 各种运算符的学习心得
  • 【JavaScript-Day 41】JS 事件大全:click, keydown, submit, load 等常见事件详解与实战
  • RK全志平台WiFiBT调试思路
  • 替换一个数字后的最大差值
  • 【配件出入库专用软件】佳易王配件进出库管理系统:轻量级仓储管理解决方案配件管理系统#进出库管理#仓储软件#库存统计#轻量级解决方案
  • 错题分析接口实现全流程
  • Vue3 + TypeScript 父组件点击按钮触发子组件事件方法
  • C#里与嵌入式系统W5500网络通讯(5)
  • 【python】bash: !‘: event not found
  • 【C语言】C语言发展历史、特点及其应用