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实现更改图片尺寸大小的方法(基于Pillow包)
Sep 19 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
python3连接MySQL数据库实例详解
May 24 Python
python人民币小写转大写辅助工具
Jun 20 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
Apr 12 Python
解析python的局部变量和全局变量
Aug 15 Python
Python3常用内置方法代码实例
Nov 18 Python
python字符串下标与切片及使用方法
Feb 13 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 Python
Python中Cookies导出某站用户数据的方法
May 17 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
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
分享12个实用的jQuery代码片段
2016/03/09 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
python绘制条形图方法代码详解
2017/12/19 Python
Python自定义线程池实现方法分析
2018/02/07 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
应届毕业生应聘自荐信范文
2014/02/26 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
十佳党员事迹材料
2014/08/28 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
1000字打架检讨书
2014/11/03 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL