Python的 numpy中 meshgrid 和 mgrid 的区别和使用

2023-11-13

一、meshgrid函数

meshgrid函数通常使用在数据的矢量化上。

它适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对。

 

示例展示:

 

 由上面的示例展示可以看出,meshgrid的作用是:

根据传入的两个一维数组参数生成两个数组元素的列表。

如果第一个参数是xarray,维度是xdimesion,

第二个参数是yarray,维度是ydimesion。

那么生成的第一个二维数组是以xarray为行,共ydimesion行的向量;

而第二个二维数组是以yarray的转置为列,共xdimesion列的向量。

 

 二、 mgrid函数

用法:返回多维结构,常见的如2D图形,3D图形。对比np.meshgrid,在处理大数据时速度更快,且能处理多维(np.meshgrid只能处理2维) 
ret = np.mgrid[ 第1维,第2维 ,第3维 , …] 
返回多值,以多个矩阵的形式返回,

第1返回值为第1维数据在最终结构中的分布,

第2返回值为第2维数据在最终结构中的分布,以此类推。(分布以矩阵形式呈现) 


例如np.mgrid[X , Y] 
样本(i,j)的坐标为 (X[i,j] ,Y[i,j]),X代表第1维,Y代表第2维,在此例中分别为横纵坐标。

例如1D结构(array),如下:

In [2]: import numpy as np

In [3]: pp=np.mgrid[-5:5:5j]

In [4]: pp
Out[4]: array([-5. , -2.5,  0. ,  2.5,  5. ])

例如2D结构 (2D矩阵),如下:

>>> pp = np.mgrid[-1:1:2j,-2:2:3j]
>>> x , y = pp
>>> x
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])
>>> y 
array([[-2.,  0.,  2.],
       [-2.,  0.,  2.]])

例如3D结构 (3D立方体),如下:

>>> pp = np.mgrid[-1:1:2j,-2:2:3j,-3:3:5j]
>>> print pp
[[[[-1.  -1.  -1.  -1.  -1. ]
   [-1.  -1.  -1.  -1.  -1. ]
   [-1.  -1.  -1.  -1.  -1. ]]

  [[ 1.   1.   1.   1.   1. ]
   [ 1.   1.   1.   1.   1. ]
   [ 1.   1.   1.   1.   1. ]]]


 [[[-2.  -2.  -2.  -2.  -2. ]
   [ 0.   0.   0.   0.   0. ]
   [ 2.   2.   2.   2.   2. ]]

  [[-2.  -2.  -2.  -2.  -2. ]
   [ 0.   0.   0.   0.   0. ]
   [ 2.   2.   2.   2.   2. ]]]


 [[[-3.  -1.5  0.   1.5  3. ]
   [-3.  -1.5  0.   1.5  3. ]
   [-3.  -1.5  0.   1.5  3. ]]

  [[-3.  -1.5  0.   1.5  3. ]
   [-3.  -1.5  0.   1.5  3. ]
   [-3.  -1.5  0.   1.5  3. ]]]]

 

三、meshgrid 和 mgrid 的区别

mgrid[[1:3:3j, 4:5:2j]] 
3j:3个点

    • 步长为复数表示点数,左闭右闭
    • 步长为实数表示间隔,左闭右开

 

 

【Reference】

1. https://blog.csdn.net/grey_csdn/article/details/69663432

2. https://blog.csdn.net/crossky_jing/article/details/49466127

3. https://blog.csdn.net/tymatlab/article/details/79027162

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python的 numpy中 meshgrid 和 mgrid 的区别和使用 的相关文章

随机推荐

  • vue安装了babel-polyfill ie依旧无法适配

    上一篇写到安装babel polyfill 插件来适配ie浏览器 链接如下 https blog csdn net qq 43469899 article details 102969776 有些小伙伴会发现尽管你是配好了我上一篇的那些部分
  • HightCharts双y轴+x时间轴

    公司布置完成图表 使用HightCharts显示 根据时间显示探头点数据 由于探头分为两种数据属性 一种是温度 单位 一种是湿度 单位 所以需要使用双纵轴显示 加上横轴使用date属性 需要对date进行formart 上代码 myCont
  • linux修改日期时间

    Linux机器上的时间比较复杂 有各式各样的时钟和选项等等 机器里有两个时钟 硬件时钟从根本上讲是CMOS时钟 而系统时钟是由内核维护的 1 修改硬件时钟的可以使用下面的方法 你就可以用它来随时更新你的硬件时间 命令为 hwclock ad
  • 计算机组成原理笔记

    文章目录 一 计算机的基本组成 二 总线 2 1 总线控制 三 主存储器 3 1 RAM 3 2 存储器与CPU相连 3 3 存储器校验 3 4 提高存储器访问速度 3 5 cache 四 输入输出系统 4 1 I O接口 4 2 程序中断
  • 【狂神说Java】SpringBoo

    作者简介 CSDN内容合伙人 信息安全专业在校大学生 系列专栏 添砖加瓦 狂神说JAVA系列笔记 新人博主 欢迎点赞收藏关注 会回访 个人格言 舞台再大 你不上台 永远是个观众 平台再好 你不参与 永远是局外人 能力再大 你不行动 只能看别
  • Flutter Dialog模态框使用及自定义Dialog

    自定义dialog插件 用来弹出确认取消提示框 或者自定义模态框 自定义类 import package flutter material dart class dialogUtil 通用显示确定按钮框 static showConfirm
  • UART串口协议

    通用异步收发传输器 Universal Asynchronous Receiver Transmitter 通常称作UATR 是一种异步收发传输器 将数据由串行通信与并行通信间做传输转换 作为并行输入称为串行输出的芯片 UART是一种通用串
  • Python3.8的下载与安装

    一 介绍 Python由荷兰数学和计算机科学研究学会的吉多 范罗苏姆 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python提供了高效的高级数据结构 还能简单有效地面向对象编程 Python语法和动态类型 以及解释型语言的本质
  • SQL中的and、or

    在sql查询语句中长用到and和or 它们在用的时候有些需要注意的地方 不管在一项表达式中有多少个and或or 它是将前一个表达式看作一项 and与or后的所有表达式看做一项 and的前后都为真的时候才为真 取交集 or有一个为真 即为真
  • 嵌入式设备和固件中的自动漏洞检测(三):静态分析技术

    原文链接 Automatic Vulnerability Detection in Embedded Devices and Firmware Survey and Layered Taxonomies ACM Computing Surv
  • 高等数值计算方法学习笔记第4章第一部分【数值积分(数值微分)】

    高等数值计算方法学习笔记第4章第一部分 数值积分 数值微分 一 数值积分概论 1 数值求积的基本思想 牛 莱公式找不到原函数 用矩形近似 2 代数精度的概念 1 上述四个公式的代数精度 梯形 左中右矩形公式 2 利用代数精度的概念构造求积公
  • Chatgpt登陆后一直在转圈请求429错误的解决办法

    Chatgpt登陆后一直在转圈请求429错误的解决办法 如果您使用ChatGPT登陆后遇到了持续转圈或请求429错误 可能是由于请求次数过多导致的限制 为了解决这个问题 可以尝试以下几个方法 等待一段时间后再次尝试登陆 由于请求次数过多 C
  • MongoDB图形化工具的使用与java操作

    MongoDB图形化工具的使用与java操作 MongoDB Compass Community 下载 安装 使用 介绍 MongoDB概念 新建数据库 删除数据库 新建集合 删除集合 新增文档 删除文档 修改文档 查询文档 Java操作m
  • HTML5 蔡徐坤打篮球游戏 NMSL❤️❤️❤️

    此文章来自实验楼用户dancebyte在实验楼的技术分享 希望大家喜欢 使用 es6 语法及原生 javascript 实现的蔡徐坤打篮球游戏 游戏有多种难度可选择 简单 普通 困难 极限以及非人类 非人类模式请勿轻易尝试 否则可能会疯掉
  • 查询性别的时候格式化

    SELECT CYD DEPT NAME T ID T CODE T NAME T JOB CASE WHEN T SEX 0 THEN 男 WHEN T SEX 1 THEN 女 ELSE X END AS SEX T BIRTH T P
  • 卷积神经网络(二)- 深度卷积网络:实例研究

    本次学习笔记主要记录学习深度学习时的各种记录 包括吴恩达老师视频学习 花书 作者能力有限 如有错误等 望联系修改 非常感谢 卷积神经网络 二 深度卷积网络 实例研究 一 为什么要进行实例研究 Why look at case studies
  • 在 VMware Workstation 虚拟机中创建共享文件夹的步骤〔图解〕

    本文以 VMware Workstation 7 1 4 385536 汉化版为例 讲解在虚拟机中创建 VMware 共享文件夹 vmware shared folders 的具体步骤与方法 一 安装 VMware Tools 启动好 Wi
  • yolov5识别cf火线敌人(FPS类的AI瞄准)详细教程一

    一 前言 因为自己的研究方向也是深度学习方向 而且平时闲的时候还喜欢玩会cf火线等枪战游戏 就想着找一个大模型做一个对游戏敌人的识别的功能 一切实现之后就想把自己的心得写出来 我打算分俩个教程分别细述整个学习以及操作的过程 教程一主要包括了
  • 【Python 逻辑题】甲、乙、丙、丁四人的血型各不相同

    问题 甲 乙 丙 丁四人的血型各不相同 甲说 我是A型 乙说 我是O型 丙说 我是AB型 丁说 我不是AB型 四个人中只有一个人的话是假的 解决方法 思路 四个人的血型肯定都在 A B O AB 范围内 所以用for循环让四个人轮流等于这四
  • Python的 numpy中 meshgrid 和 mgrid 的区别和使用

    一 meshgrid函数 meshgrid函数通常使用在数据的矢量化上 它适用于生成网格型数据 可以接受两个一维数组生成两个二维矩阵 对应两个数组中所有的 x y 对 示例展示 由上面的示例展示可以看出 meshgrid的作用是 根据传入的