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

人工智能之数据分析 numpy:第十四章 知识总结

人工智能之数据分析 numpy

第十四章 知识总结


@

目录
  • 人工智能之数据分析 numpy
  • 前言
  • 🧱 一、基础核心:ndarray(N 维数组)
  • 🔢 二、数组创建
  • 📐 三、形状操作(Shape Manipulation)
  • 🔗 四、数组连接与分割
  • 🔄 五、广播机制(Broadcasting)
  • ➕ 六、数组运算
    • 1. 算术运算(逐元素)
    • 2. 比较与逻辑
    • 3. 位运算(整数)
    • 4. 通用函数(ufunc)
  • 🧮 七、聚合与统计
  • 🔍 八、排序与筛选
    • 排序
    • 筛选(布尔索引)
    • 条件选择
  • 🧩 九、特殊数组类型
    • 1. 结构化数组(Structured Arrays)
    • 2. 记录数组(Record Arrays)
    • 3. 矩阵(Matrix)
  • 🧮 十、线性代数(numpy.linalg
  • 💾 十一、数据持久化
  • 🖼️ 十二、与生态工具衔接
  • 🔄 十三、MATLAB → NumPy 关键差异
  • ⚙️ 十四、性能与最佳实践
  • 📚 总结:NumPy 核心思想
  • 后续
  • 资料关注


前言

本文主要讲解 NumPy 的核心知识点总结,涵盖其作为 Python 科学计算基石的关键概念与最佳实践,适合快速回顾、面试准备或系统学习。


🧱 一、基础核心:ndarray(N 维数组)

  • 唯一数据结构:所有操作围绕 numpy.ndarray 展开。
  • 关键属性
    • .shape:维度大小(元组)
    • .dtype:元素数据类型(如 int32, float64, U10
    • .ndim:维度数量
    • .size:总元素个数
  • 内存连续:默认 C 风格(行优先),支持高效缓存访问。
a = np.array([[1, 2], [3, 4]], dtype=np.float32)
print(a.shape, a.dtype)  # (2, 2) float32

🔢 二、数组创建

方法 用途
np.array() 从列表/元组创建
np.zeros(), np.ones() 全零/全一阵
np.empty() 未初始化数组(快)
np.arange() 等差整数序列(类似 range
np.linspace() 指定数量的等间距浮点数
np.eye() / np.identity() 单位矩阵
np.random.rand() 随机数组

✅ 推荐显式指定 dtype 避免隐式转换。


📐 三、形状操作(Shape Manipulation)

  • 重塑arr.reshape(new_shape)(返回视图,若可能)
  • 展平arr.flatten()(副本) vs arr.ravel()(视图优先)
  • 转置arr.Tarr.transpose(axes)
  • 维度增减
    • 增:np.expand_dims(arr, axis)
    • 减:np.squeeze(arr)(移除长度为1的轴)
a = np.array([1, 2, 3])
b = a[:, np.newaxis]  # → shape (3, 1)

🔗 四、数组连接与分割

操作 函数
水平拼接 np.hstack() / np.concatenate(axis=1)
垂直拼接 np.vstack() / np.concatenate(axis=0)
深度拼接 np.dstack()
分割 np.split(), np.hsplit(), np.vsplit()

⚠️ 注意:concatenate 要求除拼接轴外其他维度一致。


🔄 五、广播机制(Broadcasting)

规则(从后往前对齐):

  1. 维度相等,或
  2. 其中一个为 1,或
  3. 缺失维度(自动补 1)

✅ 示例:

  • (3,) + (2, 3)(2, 3)
  • (2, 1) + (3,)(2, 3)

❌ 失败:

  • (2, 3) + (3, 2) → 最后一维 3≠2 且都不为1

🔑 广播是向量化运算的核心,避免显式循环!


➕ 六、数组运算

1. 算术运算(逐元素)

  • + - * / // % **
  • 支持标量、同形数组、广播数组

2. 比较与逻辑

  • 比较:== != > < >= <= → 返回布尔数组
  • 逻辑:& | ~(用于布尔数组),np.logical_and/or/not

3. 位运算(整数)

  • & | ^ ~ << >> → 对应 np.bitwise_*

4. 通用函数(ufunc)

  • 向量化数学函数:np.sin, np.exp, np.sqrt, np.log
  • 累积:np.add.accumulate()
  • 归约:np.add.reduce()

🧮 七、聚合与统计

函数 说明
np.sum(), np.mean(), np.std() 求和、均值、标准差
np.min(), np.max() 最值
np.argmin(), np.argmax() 返回索引
np.cumsum(), np.cumprod() 累积和/积
axis 参数 沿指定轴聚合(axis=0 列,axis=1 行)
arr = np.array([[1, 2], [3, 4]])
print(arr.sum(axis=0))  # [4 6]

🔍 八、排序与筛选

排序

  • np.sort(arr):返回排序副本
  • arr.sort():原地排序
  • np.argsort():返回排序索引

筛选(布尔索引)

arr = np.array([1, 2, 3, 4])
filtered = arr[arr > 2]  # [3 4]# 多条件(注意括号!)
mask = (arr > 1) & (arr < 4)

条件选择

  • np.where(condition, x, y):三元运算
  • np.select(), np.choose():多条件选择

🧩 九、特殊数组类型

1. 结构化数组(Structured Arrays)

  • 异构字段:dtype=[('name', 'U10'), ('age', 'i4')]
  • 访问:arr['name']

2. 记录数组(Record Arrays)

  • 属性访问:arr.name(不推荐新项目使用)

3. 矩阵(Matrix)

  • 已弃用!统一用 ndarray + @ 运算符

🧮 十、线性代数(numpy.linalg

操作 函数
矩阵乘法 A @ Bnp.dot(A, B)
转置 A.T
逆矩阵 np.linalg.inv(A)
行列式 np.linalg.det(A)
解方程 np.linalg.solve(A, b)
特征值 np.linalg.eig(A)
SVD np.linalg.svd(A)
范数 np.linalg.norm(x)

✅ 优先用 solve 而非 inv(更稳定高效)


💾 十一、数据持久化

格式 函数 适用场景
.npy np.save() / np.load() 单数组,高效
.npz np.savez() / np.load() 多数组打包
文本 np.savetxt() / np.loadtxt() 小数据,可读
内存映射 np.memmap 超大数组(>内存)
HDF5 h5py 科学大数据,跨平台

🖼️ 十二、与生态工具衔接

工具 关系
Matplotlib 直接绘图 NumPy 数组
Pandas DataFrame.values 返回 ndarray
SciPy 基于 NumPy,提供高级算法
scikit-learn 输入要求为 NumPy 数组
TensorFlow/PyTorch 张量 ↔ NumPy 数组互转

🔄 十三、MATLAB → NumPy 关键差异

MATLAB NumPy
索引从 1 开始 索引从 0 开始
A * B 是矩阵乘 A @ B 是矩阵乘,A * B 是逐元素
end 表示末尾 -1
[A; B] 垂直拼接 np.vstack([A, B])
A(:) 展平 A.ravel()

⚙️ 十四、性能与最佳实践

  • 避免 Python 循环:用向量化操作
  • 预分配数组np.zeros() 比动态 append 快
  • 使用视图而非副本:切片、ravel() 默认返回视图
  • 指定 dtype:避免不必要的类型提升
  • 大数组用内存映射np.memmap
  • 不要用 np.matrix
  • 慎用 np.matrixfrompyfunc

📚 总结:NumPy 核心思想

“Everything is an array.”
—— 用统一的 N 维数组模型,通过向量化广播ufunc 实现高性能数值计算。


📌 附:速查命令

import numpy as np# 创建
a = np.arange(10).reshape(2,5)# 运算
b = np.sin(a) + 2# 筛选
c = b[b > 0]# 聚合
mean_val = c.mean()# 保存
np.save('result.npy', c)

后续

本文主要对numpy做一个总结。之前的python过渡项目部分代码已经上传至gitee,后续会逐步更新,主要受时间原因限制,当然自己也可以克隆到本地学习拓展。

资料关注

公众号:咚咚王
gitee:https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》
《利用Python进行数据分析》
《算法导论中文第三版》
《概率论与数理统计(第四版) (盛骤) 》
《程序员的数学》
《线性代数应该这样学第3版》
《微积分和数学分析引论》
《(西瓜书)周志华-机器学习》
《TensorFlow机器学习实战指南》
《Sklearn与TensorFlow机器学习实用指南》
《模式识别(第四版)》
《深度学习 deep learning》伊恩·古德费洛著 花书
《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》
《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》
《自然语言处理综论 第2版》
《Natural-Language-Processing-with-PyTorch》
《计算机视觉-算法与应用(中文版)》
《Learning OpenCV 4》
《AIGC:智能创作时代》杜雨+&+张孜铭
《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》
《从零构建大语言模型(中文版)》
《实战AI大模型》
《AI 3.0》

http://www.rkmt.cn/news/60635.html

相关文章:

  • 信息的建筑学:MyBatis Log Panda 如何重构开发者的认知地图
  • ai论文软件推荐:智能工具助力学术写作效率提升
  • 2025年11月软瓷厂家推荐榜:3D软瓷/软瓷砖/mcm软瓷/3D打印软瓷厂家批发环保品质深度解析!
  • 降ai率免费网站:助力内容原创性提升的实用工具
  • PVC地板厂家天津航美国际贸易有限公司:华北平价基地核心成员,规模化降本,耐磨防滑产品适配多场景
  • PVC地板厂家天津航美:2016年成立深耕行业,同质透心/地板革等全品类,防火阻燃符合国际标准
  • 云拨测:当“正常变更”摧毁全球网络时,谁来守护你的业务可用性?
  • 江苏省刑事律所推荐:专业法律服务机构参考
  • 苏州婚姻家庭纠纷律所推荐:专业法律服务机构选择参考
  • 2025年下半年奖杯奖牌/水晶奖杯/奖杯定制/定制厂家前十推荐
  • 压力大失眠吃的睡眠益生菌有哪些?成分与效果解析
  • 江苏省比较好的律师事务所推荐及服务能力解析
  • 提升免疫力的靠谱保健品推荐:这些品牌值得关注
  • FastAPI 流式响应中,如何优雅处理客户端断连后的数据库操作?
  • 2025 长效阻垢马桶权威榜单:95% 阻垢率才达标,告别管路发黄烦恼
  • 2025 年最新推荐冲击试验机优质厂家排行榜:摆锤 / 落锤 / 低温型设备精选,助力企业精准采购优质供应商低温冲击试验机/冲击试验机低温槽/冲击试验机缺口拉床公司推荐
  • 争取孩子抚养权找哪个律师靠谱?婚姻纠纷律师选择参考
  • 2025 最新硅芯管源头厂家推荐排行榜:权威甄选高密度聚乙烯 / 通信 / 光缆用优质管材供应企业通信用硅芯管/光缆保护用硅芯管/高强度硅芯管/内壁润滑硅芯管公司推荐
  • 2025年11月山东石材雕刻机/墓碑雕刻机/绳锯机综合选购指南与十大推荐:山东永福泰登顶
  • 时间序列信息预测:14种机器学习与深度学习模型
  • 2025年口碑好的成都制造业短视频运营公司最新权威实力榜
  • 2025 最新推荐!金刚石量子传感器厂家权威榜单:聚焦技术创新、产业应用与国际测评领先品牌金刚石量子磁力仪/金刚石量子探针扫描仪/金刚石量子显微镜/金刚石量子温度探针公司推荐
  • rman备份顺序详解
  • 创业企业如何选云?AWS、Azure、Google Cloud差异全解析(IDC Gartner洞察)
  • 2025海外云服务器推荐报告:Why AWS Dominates the Global Cloud Market
  • 国标GB28181算法算力平台EasyGBS助力构建食品安全监督管理系统全流程可视化监管方案
  • 创建同值数组
  • mapvthree 地理投影设计分析——自动转换与统一接口的设计理念
  • 安阳一对一家教辅导机构 TOP5 排行榜:2026年综合测评
  • 2025年双组份喷涂泵专用喷枪优质厂家权威推荐:高压无气喷涂机专用喷枪/无气喷涂机专用喷枪/双组份喷漆泵实力厂商精选