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 相关文章推荐
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
python制作小说爬虫实录
Aug 14 Python
python cs架构实现简单文件传输
Mar 20 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
PyTorch 1.0 正式版已经发布了
Dec 13 Python
BP神经网络原理及Python实现代码
Dec 18 Python
Python面向对象思想与应用入门教程【类与对象】
Apr 12 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
Django之全局使用request.user.username的实例详解
May 14 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下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
php+mysql事务rollback&commit示例
2010/02/08 PHP
php数据库密码的找回的步骤
2011/01/12 PHP
php防止用户重复提交表单
2015/11/02 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
Egret引擎开发指南之创建项目
2014/09/03 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python标准库sched模块使用指南
2017/07/06 Python
详解python3中的真值测试
2018/08/13 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
python3中property使用方法详解
2019/04/23 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
Python 复平面绘图实例
2019/11/21 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
一年级学生评语大全
2014/04/21 职场文书
广告学专业求职信
2014/06/19 职场文书
个人委托书怎么写
2014/09/17 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android