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计算方程式根的方法
May 07 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
Python语言描述最大连续子序列和
Dec 05 Python
每天迁移MySQL历史数据到历史库Python脚本
Apr 13 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
Python发送邮件的实例代码讲解
Oct 16 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
python烟花效果的代码实例
Feb 25 Python
python求解汉诺塔游戏
Jul 09 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
Python内置数据结构列表与元组示例详解
Aug 04 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
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
PHP的引用详解
2015/02/22 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
python调用java的Webservice示例
2014/03/10 Python
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
办公室岗位职责
2015/02/04 职场文书
环卫个人总结
2015/03/03 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS
python 管理系统实现mysql交互的示例代码
2021/12/06 Python
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python