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查找相似单词的方法
Mar 05 Python
Python新手实现2048小游戏
Mar 31 Python
Python实现App自动签到领取积分功能
Sep 29 Python
Python3实现的反转单链表算法示例
Mar 08 Python
简单了解python中的与或非运算
Sep 18 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
Selenium启动Chrome时配置选项详解
Mar 18 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
浅析Python 责任链设计模式
Sep 11 Python
Python urlopen()参数代码示例解析
Dec 10 Python
Python 循环读取数据内存不足的解决方案
May 25 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和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP运行模式的深入理解
2013/06/03 PHP
php获取参数的几种方法总结
2014/02/18 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
微信小程序 触控事件详细介绍
2016/10/17 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
JavaScript 异步调用
2017/10/25 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
jQuery实现增删改查
2020/12/22 jQuery
详解python之简单主机批量管理工具
2017/01/27 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
python实现机器学习之元线性回归
2018/09/06 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
公务员职务工作的自我评价
2013/11/01 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
法语专业求职信
2014/07/20 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
初一英语教学反思
2016/02/15 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL