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 的 with 语句详解
Jun 13 Python
python进程类subprocess的一些操作方法例子
Nov 22 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
Django框架多表查询实例分析
Jul 04 Python
python抓取京东小米8手机配置信息
Nov 13 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
python根据txt文本批量创建文件夹
Dec 08 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
如何对python的字典进行排序
Jun 19 Python
Python matplotlib模块及柱状图用法解析
Aug 10 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
php远程下载类分享
2016/04/13 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
jquery中radio checked问题
2015/03/16 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
深入了解Python数据类型之列表
2016/06/24 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python标准库itertools的使用方法
2020/01/17 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
经典洗发水广告词
2014/03/13 职场文书
相亲活动方案
2014/08/26 职场文书
代理人委托书
2014/09/16 职场文书
六五普法宣传标语
2014/10/06 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
小学班级标语口号大全
2015/12/26 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电