Python的 numpy中 meshgrid 和 mgrid 的区别和使用
一、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
Python的 numpy中 meshgrid 和 mgrid 的区别和使用的更多相关文章
- 【转】numpy中 meshgrid 和 mgrid 的区别和使用
转自:https://www.cnblogs.com/shenxiaolin/p/8854197.html 一.meshgrid函数 meshgrid函数通常使用在数据的矢量化上. 它适用于生成网格型 ...
- Numpy中Meshgrid函数介绍及2种应用场景
近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法.但总觉得印象不深刻,不是太了解meshgrid的应用场景.所以,本文将进一步介绍Numpy中meshgrid的用法 ...
- Python:numpy中的tile函数
在学习机器学习实教程时,实现KNN算法的代码中用到了numpy的tile函数,因此对该函数进行了一番学习: tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复 ...
- Mathab和Python的numpy中的数组维度
Matlab和Python的numpy在维度索引方面的不同点: 1.索引的起始点不同:Matlab起始位置的索引为1,Python为0. 2.索引的括号不同:Matlab中元素可以通过小括号表示索引, ...
- python和numpy中sum()函数的异同
转载:https://blog.csdn.net/amuchena/article/details/89060798和https://www.runoob.com/python/python-func ...
- python类库numpy中常见函数的用法
1. numpy.reshape 重塑 reshape是一种函数,函数可以重新调整矩阵的行数.列数.维数. B = reshape(A,m,n) 返回一个m*n的矩阵B, B中元素是按列从A中得到的 ...
- 【python】Numpy中stack(),hstack(),vstack()函数详解
转自 https://blog.csdn.net/csdn15698845876/article/details/73380803 这三个函数有些相似性,都是堆叠数组,里面最难理解的应该就是stack ...
- Python模块NumPy中的tile(A,rep) 函数
from NumPy import * 函数形式: tile(A,rep) 功能:重复A的各个维度 参数类型: - A: Array类的都可以 - rep:A沿着各个维度重复的次数 这个英文单词的本意 ...
- Python的 numpy中 numpy.ravel() 和numpy.flatten()的区别和使用
两者所要实现的功能是一致的(将多维数组降为一维), 两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten() 返回一份拷贝,对拷贝所做的修改不会影响(reflects ...
随机推荐
- bzoj 1565 [NOI2009]植物大战僵尸 解题报告
1565: [NOI2009]植物大战僵尸 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2161 Solved: 1000[Submit][Stat ...
- 企业版Oracle10g的安装-过程
ylbtech-Oracle:企业版Oracle10g的安装-过程 Oracle10g的安装 在Windows操作系统上安装Oracle10g数据库的步骤如下: 0.1)从Oracle的官方网站上下载 ...
- CF 327B. Hungry Sequence
B. Hungry Sequence time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- C++类模板的三种特化
说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多.我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型: 二是特化为引用,指针 ...
- Druid对比Elasticsearch
我们不是Elasticsearch的专家, 如果描绘有误, 请通过邮件列表或者其他途径告知我们. Elasticsearch 是基于Apache Lucene搜索服务器. 提供了对无模式文档的全文检 ...
- ListView GridViewColumn.CellTemplate
<ListView.View> <GridView> <GridViewColumn Header="Meaningful Use Objectives&quo ...
- Android Studio 3.0 下载 使用新功能介绍
谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快.(英语一般,有些翻译不太好) 下载地址 https://developer.android.g ...
- Jmeter-Maven-Plugin高级应用:Adding additional libraries to the classpath
Adding additional libraries to the classpath Pages 12 Home Adding additional libraries to the classp ...
- Discuz常见小问题-如何修改板块和分区
1 论坛-版块管理,然后添加一个版块名称(我把版块名称跟前面的主导航对应起来,比如都是论坛首页,在论坛首页下面放了三个版块,最新产品信息,最新培训信息,最新专题讨论) 2 点击编辑按钮 3 如果我设置 ...
- Struts2(八)访问Servlet API
一.Struts2中的Servlet API 1.1.struts2的Action实现了MVC中C层的作用 针对请求用户显示不同的信息 登录后段保存用户信息 ----session 保存当前在线人数等 ...