numpy中的meshgrid函数「建议收藏」

numpy中的meshgrid函数「建议收藏」numpy官方文档meshgrid函数帮助文档https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html meshgrid(*xi,**kwargs)功能:从一个坐标向量中返回一个坐标矩阵 参数:x1,x2…,xn:数组,一维的数组代表网格的坐标。indexing:{‘xy’,…

大家好,又见面了,我是你们的朋友全栈君。

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

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135784.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 华为论坛官网_华为设备官网

    华为论坛官网_华为设备官网今日看点✦华为将持续投入汽车行业,今年研发投资将达10亿美元✦绿地集团旗下绿地数科拟2023年前上市,利润达到60亿元✦瑞幸首家咖啡烘焙基地正式投产,总投资2.1亿元✦海南离岛免税…

  • python读取txt文件并取其某一列数据「建议收藏」

    菜鸟笔记1首先读取的txt文件如下:AAAAF1100003E8180003E1FC0003E7700003FFFC90AAAAF1100003E8240003E2080003E76C0003FFFCA5AAAAF1100003E8140003E2040003E7600003FFFC85AAAAF1100003E7F00003E2080003E…

  • Opencv人脸识别项目简介

    Opencv人脸识别项目简介Opencv人脸识别Project综述项目要求使用opencv实现对人脸库的主成分提取(不使用PCA类),完成特征模型保存对一张测试照片进行识别,找到图片库中和测试图片最像的图配置说明Opencv3.0VS2015Win10配置过程网上太多了,就不做过多解释了,可以参照某个教程来做。主要的也就几步,下载Opencv,配Path,配置VC++目录的包含目录和库目录,配置链接器附加项的附

  • linux抓包及分析[通俗易懂]

    linux抓包及分析[通俗易懂]不指定任何参数1tcpdump监听特定网卡1tcpdump-ieth0监听特定主机,例子:10.0.32.28,备注:出入的包都会被监听1tcpdumphost10.0.32.28特定来源、目标地址的通信1tcpdumpsrchosthostname#源主机IP2tcpdumpdsthosthostname…

    2022年10月14日
  • Java常用的几种属性拷贝工具类使用总结

    怕什么真理无穷,进一步有近一步的欢喜文章目录开头聊几句Java属性拷贝工具类使用总结字段和属性使用说明**org.springframework.beans.BeanUtils#copyProperties**org.apache.commons.beanutils.PropertyUtils#_copyProperties_org.apache.commons.beanutils.BeanUtils#_copyProperties原理探索Spring#BeanUtilsapache.commons#.

  • Dockerfile add_在docker中使用ubuntu

    Dockerfile add_在docker中使用ubuntu前言Dockerfile中提供了两个非常相似的命令COPY和ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。Build上下文的概念在使用dock

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号