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

numpy的详细知识点,简单易懂

numpy的核心概念

NumPy(Numerical Python)是Python中用于科学计算的基础库,提供高效的多维数组对象ndarray及大量数学函数。其核心设计围绕数组操作、广播机制和向量化计算展开。

数组创建与属性

  • 基本创建
    import numpy as np
    arr = np.array([1, 2, 3])  # 一维数组
    arr_2d = np.array([[1, 2], [3, 4]])  # 二维数组
    

  • 特殊数组
    np.zeros((2, 3))  # 全0数组
    np.ones((2, 2))   # 全1数组
    np.arange(0, 10, 2)  # 类似range的序列
    np.linspace(0, 1, 5)  # 等间隔数组
    

  • 数组属性
    shape(维度)、dtype(数据类型)、size(元素总数)、ndim(轴数)。

数组操作

  • 索引与切片
    arr = np.array([[1, 2, 3], [4, 5, 6]])
    arr[1, 2]  # 输出6(第二行第三列)
    arr[:, 1:3]  # 所有行的第2到3列
    

  • 变形与合并
    arr.reshape(3, 2)  # 改变形状
    np.concatenate([arr1, arr2], axis=0)  # 沿行合并
    np.vstack((arr1, arr2))  # 垂直堆叠
    

广播机制

NumPy允许不同形状的数组进行算术运算,通过广播自动扩展较小数组的维度:

a = np.array([1, 2, 3])
b = 2
a * b  # 广播结果:[2, 4, 6]

数学与统计函数

  • 通用函数(ufunc)
    np.sin(), np.exp(), np.sqrt()等逐元素操作。
  • 聚合函数
    np.sum(), np.mean(), np.max()支持沿轴计算:
    arr.sum(axis=0)  # 每列求和
    

线性代数

numpy.linalg模块提供矩阵运算:

np.dot(A, B)  # 矩阵乘法
np.linalg.inv(A)  # 矩阵求逆
np.linalg.eig(A)  # 特征值与特征向量

随机数生成

np.random模块生成伪随机数:

np.random.rand(3, 2)  # 均匀分布
np.random.normal(0, 1, 10)  # 正态分布
np.random.randint(0, 10, 5)  # 随机整数

性能优化

  • 向量化:避免循环,使用内置函数。
  • 内存布局arr.flags查看连续性,np.ascontiguousarray()优化。
  • 预分配内存:提前创建数组避免频繁扩容。

实际应用示例

  • 图像处理:RGB图像表示为三维数组(高度×宽度×通道)。
  • 时间序列分析:滑动窗口计算均值或标准差。

通过掌握这些知识点,可以高效处理数值计算任务,并为深度学习框架(如TensorFlow/PyTorch)奠定基础。

http://www.lryc.cn/news/596723.html

相关文章:

  • 【Linux系统】基础IO
  • HTTP 协议常见字段(请求头/响应头)
  • 【初识数据结构】CS61B 中的堆以及堆排序算法
  • 数据库设计mysql篇
  • 第六章 工具调用
  • linux辅助知识(Shell 脚本编程)
  • 基于LangGraph的Open Deep Research架构全解析:从多Agent协作到企业级落地
  • 元宇宙游戏与VR的关联性及发展分析(截至2025年7月)
  • 工业互联网时代,如何通过混合SD-WAN提升煤炭行业智能化网络安全
  • 【上市公司变量测量】Python+FactSet Revere全球供应链数据库,测度供应链断裂与重构变量——丁浩员等(2024)《经济研究》复现
  • Spring之【Bean工厂后置处理器】
  • 从重复劳动到自动化:火语言 RPA 的实践与思考
  • 《计算机“十万个为什么”》之 MQ
  • Java从入门到精通!第十一天(Java常见的数据结构)
  • .net 警告【代码 CS1998】此异步方法缺少 “await“ 运算符,将以同步方式运行。
  • Qt字符串处理与正则表达式应用
  • SSL VPN技术
  • SpringCloud Nacos配置中心
  • 网易视觉算法面试30问全景精解
  • Python实例之画小猪佩奇
  • Java函数指南:从Function到BiFunction的深度解析
  • AI AgentLLM架构演进的大逻辑和小脉络
  • rocky9-zabbix简单部署
  • 第十一章 用Java实现JVM之异常处理
  • C++11--锁分析
  • 华为视觉算法面试30问全景精解
  • What Does “Directory of the Script Being Run” Mean?
  • final修饰符不可变的底层
  • SpringBoot PO VO BO POJO实战指南
  • Pycharm下载、安装及配置