numpy中的meshgrid函数的使用


Posted in Python onJuly 31, 2019

numpy官方文档meshgrid函数帮助文档https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html

meshgrid(*xi, **kwargs)

功能:从一个坐标向量中返回一个坐标矩阵

参数:

x1,x2...,xn:数组,一维的数组代表网格的坐标。

indexing:{'xy','ij'},笛卡尔坐标'xy'或矩阵'ij'下标作为输出,默认的是笛卡尔坐标。

sparse:bool类型,如果为True,返回一个稀疏矩阵保存在内存中,默认是False。

copy:bool类型,如果是False,返回一个原始数组的视图保存在内存中,默认是True。如果,sparse和copy都为False,将有可能返回一个不连续的数组。而且,如果广播数组的元素超过一个,可以使用一个独立的内存。如果想要对这个数组进行写操作,请先拷贝这个数组。

返回值:x1,x2,....,xn:ndarray(numpy数组)

可能看完官方的文档之后还是一脸懵逼,下面通过几个例子来解释说明一下。 

nx,ny = (3,2)
  #从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数
  x = np.linspace(0,1,nx)
  #[ 0.  0.5 1. ]
  y = np.linspace(0,1,ny)
  # [0. 1.]
  xv,yv = np.meshgrid(x,y)
  '''
  xv
  [[ 0.  0.5 1. ]
   [ 0.  0.5 1. ]]
   yv
   [[ 0. 0. 0.]
   [ 1. 1. 1.]]
  '''

通过上面的例子,其实可以发现meshgrid函数将两个输入的数组x和y进行扩展,前一个的扩展与后一个有关,后一个的扩展与前一个有关,前一个是竖向扩展,后一个是横向扩展。因为,y的大小为2,所以x竖向扩展为原来的两倍,而x的大小为3,所以y横向扩展为原来的3倍。通过meshgrid函数之后,输入由原来的数组变成了一个矩阵。通过使用meshgrid函数,可以产生一个表格矩阵,下面用一个例子来展示产生一个2*2网格的坐标,每个网格的大小为1。

nx,ny = (3,3)
  #从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数
  x = np.linspace(0,2,nx)
  # [0. 1. 2.]
  y = np.linspace(0,2,ny)
  # [0. 1. 2.]
  xv,yv = np.meshgrid(x,y)
  print(xv.ravel())
  #[ 0. 1. 2. 0. 1. 2. 0. 1. 2.]
  print(yv.ravel())
  #[ 0. 0. 0. 1. 1. 1. 2. 2. 2.]

ravel函数是将矩阵变为一个一维的数组,其中xv.ravel()就表示x轴的坐标,yv.ravel()就表示了y轴的坐标,我们将x轴的坐标和y轴的坐标进行一一对应,就产生了一个2*2大小为1的网格中的9个点的坐标。

如果,将sparse参数设置为True,就不会向上面一样进行扩展了,也就是说它产生的网格坐标不是所有的网格坐标,而是网格对角线上的坐标点。

nx,ny = (3,3)
  #从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数
  x = np.linspace(0,2,nx)
  # [0. 1. 2.]
  y = np.linspace(0,2,ny)
  # [0. 1. 2.]
  xv,yv = np.meshgrid(x,y,sparse=True)
  print(xv)
  #[[ 0. 1. 2.]]
  print(yv)
  '''
  [[ 0.]
   [ 1.]
   [ 2.]]
  '''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
python实现web方式logview的方法
Aug 10 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
详解Python 函数如何重载?
Apr 23 Python
python Shapely使用指南详解
Feb 18 Python
python logging设置level失败的解决方法
Feb 19 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
Python dict的常用方法示例代码
Jun 23 Python
pandas的排序和排名的具体使用
Jul 31 #Python
pandas如何处理缺失值
Jul 31 #Python
详细介绍pandas的DataFrame的append方法使用
Jul 31 #Python
使用pandas读取文件的实现
Jul 31 #Python
python3实现mysql导出excel的方法
Jul 31 #Python
Django接收post前端返回的json格式数据代码实现
Jul 31 #Python
python快速编写单行注释多行注释的方法
Jul 31 #Python
You might like
PHP脚本数据库功能详解(中)
2006/10/09 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
js实现弹窗效果
2020/08/09 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python列表推导式入门学习解析
2019/12/02 Python
python实现银行实战系统
2020/02/26 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
毕业实习个人鉴定范文
2013/12/10 职场文书
家长会学生家长演讲稿
2013/12/29 职场文书
运动会致辞稿50字
2014/02/04 职场文书
上课迟到检讨书
2014/02/19 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
采购内勤岗位职责
2015/04/13 职场文书