numpy中的meshgrid函数的使用

作者:修炼之路 时间:2021-10-07 06:11:39 

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.]]
 '''

来源:https://blog.csdn.net/sinat_29957455/article/details/78825945

标签:numpy,meshgrid
0
投稿

猜你喜欢

  • 基于Python的图像数据增强Data Augmentation解析

    2022-12-21 11:50:31
  • golang的httpserver优雅重启方法详解

    2023-08-06 00:22:41
  • Python tkinter的grid布局及Text动态显示方法

    2023-06-28 14:54:00
  • Session.TimeOut的最大取值是1440,超出会报错

    2011-03-31 11:19:00
  • python如何通过psutil获取服务器cpu、内存、磁盘使用率

    2022-11-07 01:01:29
  • 宝塔面板成功部署Django项目流程(图文)

    2022-07-29 13:11:19
  • Python+OpenCV实现图像的全景拼接

    2023-12-01 11:47:29
  • 教你如何将 Sublime 3 打造成 Python/Django IDE开发利器

    2022-10-10 11:37:29
  • 布同自制Python函数帮助查询小工具

    2021-09-01 19:38:35
  • python实现井字棋游戏

    2022-02-27 15:16:49
  • Python中一般处理中文的几种方法

    2023-10-11 01:45:23
  • Python新手如何进行闭包时绑定变量操作

    2021-05-01 15:23:55
  • 一个完整的PHP类包含的七种语法说明

    2023-11-16 13:02:07
  • Python+腾讯云服务器实现每日自动健康打卡

    2023-08-18 00:22:44
  • SQL Server中处理空值时涉及的三问题

    2009-01-20 11:24:00
  • 表单name与id的区别和相似之处

    2007-12-13 12:55:00
  • JavaScript解决Joseph问题

    2008-06-21 17:11:00
  • Python操作json数据的一个简单例子

    2022-10-23 17:09:37
  • 使用Golang的Context管理上下文的方法

    2023-06-29 06:37:23
  • Mozilla专有JavaScript扩展之一(__noSuchMethod__)

    2009-03-01 12:45:00
  • asp之家 网络编程 m.aspxhome.com