python meshgrid()理解

article/2025/8/27 2:50:55

本文的目的是记录meshgrid()的理解过程:

step1. 通过一个示例引入创建网格点矩阵;

step2. 基于步骤1,说明meshgrid()的作用;

step3. 详细解读meshgrid()的官网定义;

说明:step1和2 的数据都是基于笛卡尔坐标系的矩阵,目的是为了方便讨论。

step1. 通过一个示例引入创建网格点矩阵;

示例1,创建一个2行3列的网格点矩阵。

复制代码

 1 #!/usr/bin/env python32 #-*- coding:utf-8 -*-3 ############################4 #File Name: meshgrid1.py5 #Brief:6 #Author: frank7 #Mail: frank0903@aliyun.com8 #Created Time:2018-06-14 21:33:149 ############################
10 import numpy as np
11 import matplotlib.pyplot as plt
12 
13 X = np.array([[0, 0.5, 1],[0, 0.5, 1]])
14 print("X的维度:{},shape:{}".format(X.ndim, X.shape))
15 Y = np.array([[0, 0, 0],[1, 1, 1]])
16 print("Y的维度:{},shape:{}".format(Y.ndim, Y.shape))
17 
18 plt.plot(X, Y, 'o--')
19 plt.grid(True)
20 plt.show()

复制代码

X矩阵是:[[0. 0.5 1. ], [0. 0.5 1. ]]

Y矩阵是:[[0 0 0],[1 1 1]]

step2. meshgrid()的作用;

当要描绘的 矩阵网格点的数据量小的时候,可以用上述方法构造网格点坐标数据;
但是如果是一个(256, 100)的整数矩阵网格,要怎样构造数据呢?
方法1:将x轴上的100个整数点组成的行向量,重复256次,构成shape(256,100)的X矩阵;将y轴上的256个整数点组成列向量,重复100次构成shape(256,100)的Y矩阵
显然方法1的数据构造过程很繁琐,也不方便调用,那么有没有更好的办法呢?of course!!!
那么meshgrid()就显示出它的作用了
使用meshgrid方法,你只需要构造一个表示x轴上的坐标的向量和一个表示y轴上的坐标的向量;然后作为参数给到meshgrid(),该函数就会返回相应维度的两个矩阵;
例如,你想构造一个2行3列的矩阵网格点,那么x生成一个shape(3,)的向量,y生成一个shape(2,)的向量,将x,y传入meshgrid(),最后返回的X,Y矩阵的shape(2,3)

示例2,使用meshgrid()生成step1中的网格点矩阵

复制代码

 1 x = np.array([0, 0.5, 1])2 y = np.array([0,1])3 4 xv,yv = np.meshgrid(x, y)5 print("xv的维度:{},shape:{}".format(xv.ndim, xv.shape))6 print("yv的维度:{},shape:{}".format(yv.ndim, yv.shape))7 8 plt.plot(xv, yv, 'o--')9 plt.grid(True)
10 plt.show()

复制代码

示例3,生成一个20行30列的网格点矩阵

复制代码

 1 x = np.linspace(0,500,30)2 print("x的维度:{},shape:{}".format(x.ndim, x.shape))3 print(x)4 y = np.linspace(0,500,20)5 print("y的维度:{},shape:{}".format(y.ndim, y.shape))6 print(y)7 8 xv,yv = np.meshgrid(x, y)9 print("xv的维度:{},shape:{}".format(xv.ndim, xv.shape))
10 print("yv的维度:{},shape:{}".format(yv.ndim, yv.shape))
11 
12 plt.plot(xv, yv, '.')
13 plt.grid(True)
14 plt.show()

复制代码

 step3. 详细解读meshgrid()的官网定义;

numpy.meshgrid(*xi, **kwargs)
Return coordinate matrices from coordinate vectors.
根据输入的坐标向量生成对应的坐标矩阵

Parameters:
  x1, x2,…, xn : array_like
    1-D arrays representing the coordinates of a grid.
  indexing : {‘xy’, ‘ij’}, optional
    Cartesian (‘xy’, default) or matrix (‘ij’) indexing of output. See Notes for more details.
  sparse : bool, optional
    If True a sparse grid is returned in order to conserve memory. Default is False.
  copy : bool, optional
    If False, a view into the original arrays are returned in order to conserve memory.
    Default is True. Please note that sparse=False, copy=False will likely return non-contiguous arrays.
    Furthermore, more than one element of a broadcast array may refer to a single memory location.
    If you need to write to the arrays, make copies first.
Returns:
  X1, X2,…, XN : ndarray
    For vectors x1, x2,…, ‘xn’ with lengths Ni=len(xi) ,
    return (N1, N2, N3,...Nn) shaped arrays if indexing=’ij’
    or (N2, N1, N3,...Nn) shaped arrays if indexing=’xy’
    with the elements of xi repeated to fill the matrix along the first dimension for x1, the second for x2 and so on.

 针对indexing参数的说明:

indexing只是影响meshgrid()函数返回的矩阵的表示形式,但并不影响坐标点

复制代码

 1 x = np.array([0, 0.5, 1])2 y = np.array([0,1])3 4 xv,yv = np.meshgrid(x, y)5 print("xv的维度:{},shape:{}".format(xv.ndim, xv.shape))6 print("yv的维度:{},shape:{}".format(yv.ndim, yv.shape))7 print(xv)8 print(yv)9 
10 plt.plot(xv, yv, 'o--')
11 plt.grid(True)
12 plt.show()

复制代码

复制代码

 1 x = np.array([0, 0.5, 1])2 y = np.array([0,1])3 4 xv,yv = np.meshgrid(x, y,indexing='ij')5 print("xv的维度:{},shape:{}".format(xv.ndim, xv.shape))6 print("yv的维度:{},shape:{}".format(yv.ndim, yv.shape))7 print(xv)8 print(yv)9 
10 plt.plot(xv, yv, 'o--')
11 plt.grid(True)
12 plt.show()

复制代码


http://chatgpt.dhexx.cn/article/N4KSJ8fO.shtml

相关文章

[MATLAB]中meshgrid函数的用法与实践(学习笔记)

今天在看点目标成像仿真程序的时候,看到了meshgrid函数,看了matlab的帮助文档后理解了一点,特此记录学习过程。 目录 一、meshgrid函数二、举例验证 三、创建二维网格绘制曲面图四、总结五、meshgrid函数源代码(仅供参考&#xff…

计算机网络原理(交换机,路由器详解)

前言 本人是大一新生,对网络知识的了解也只是一知半解,虽然煞费苦心,但这篇文章中肯定还会有很多错误,希望大佬们发现问题后能予以纠正 网络协议 这些东西主要涉及在局域网,osi模型中处在第二层和第三层&#xff0c…

交换机和路由器区别

交换机路由器简单理解 以快递为例: 首先我们要把我们传输的数据就比拟成收发的快递货物。 然后我们要知道的是,我们手中的手机和电脑等一些使用设备,它们都有一个固定的MAC地址,这个MAC地址就相当于快递系统中的接收人&#xf…

以太网交换机和路由器的区别(转载)

以太网交换机和路由器是两个不同的网络设备,很多朋友却弄不清楚它们彼此之间的区别,下面简单介绍下。 在osi七层模型上来分析,交换机在第二层工作,路由器在第三层上工作。但是随着技术的发展,一些交换机集成了一些第三…

交换机和路由器有什么区别

交换机 (英文:Switch,意为“开关”)是一种用于电信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。 路由器 (Router&#xf…

交换机与路由器技术

交换机的基本配置 一、思科设备命令行基础 1、进入设备命令行界面 设备支持命令行 去看设备上的接口,是否有console 需要用超级终端进行连接 puttsecret CRTXshell 2、命令行基础 思科设备上的命令行模式 用户模式:查看统计信息(一般情况下用的非常…

思科交换机和路由器

交换机 进入模式 no switchport: no switchport这条命令的意思是:可以把二层接口改为三层接口,也就是说相当于一个路由器上的接口。no switch 实际上是no switchport的简写,而switchport就是交换口,也就是二层接口,…

三层交换机与路由器的区别

一、三层交换机 三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多…

交换机和路由器的区别是什么?

交换机和路由器的区别: ◆ 路由器可以给你的局域网自动分配IP,虚拟拨号,就像一个交通警察,指挥着你的电脑该往哪走,你自己不用操心那么多了。 交换机只是用来分配网络数据的。 ◆ 路由器可以把一个IP分配给很多个主机…

网络/交换机和路由器区别

计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实 际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的&…

交换机和路由器

交换机只有交换的功能,用于组建局域网 路由器用来连接外网(局域网和互联网相连接),路由器也叫网关 也就是说路由器是用来连接两个子网,交换机是用来连接一个子网内不同的计算机 路由器是基于ip寻址,交换机…

【交换机和路由器的区别】

一.交换机? 交换机的作用:把数据包发送到正确的位置 交换机工作的方式:依照MAC地址和物理端口的关系映射表,也叫MAC地址表,通过数据包上的目标MAC地址,找到他对应的物理端口. 1.物理端口如何和MAC地址建立映射关系? 通过网线! 一个交换机本身就带有很多端口,每一个端口有自己…

浅谈交换机和路由器的区别

网络在我们的生活学习中已经成为了必须的东西,也许 ”世界上最遥远的距离就是没网“,而路由器和交换机这两种联网的中继设备最常见。如下图左为交换机,右为路由器。那么到底路由器和交换机有哪些区别呢?他们在网络的组建方面各自扮…

交换机与路由器的配置

交换机与路由器的配置 一、交换机的基本配置 配置enable口令、密码和主机名 Switch> (用户执行模式提示符) Switch>enable (进入特权模式) Switch# (特权模式提示符) Switch#config terminal (进入配置模式) Switch(config)#enable password cisco (设置enable passwor…

交换机和路由器到底有什么区别???

我:度娘度娘,交换机和路由器的区别是什么呢? 度娘:一个工作在第二层数据链路层,一个工作在第三层网络层。 我:哈?那工作在不同层会有什么区别?为什么要工作在不同层? …

关于路由器和交换机的区别图解(总结)

简介 路由器是在交换机的基础上发展而来: 路由器又被称为网关设备,用于连接多个逻辑上分开的网络,它是不同网段通信的桥梁。路由器是在交换机的基础上发展而来,它们之间在概念上有一定的重叠但也有很大的不同,交换机泛…

路由器和交换机的区别

相信有很多人在学习网络的过程中,都会对路由器与交换机的区别与联系感到疑惑不解,因为这两台设备的功能看起来似乎一样。然而,其实路由器与交换机大有不同,下面是我对此的一些理解,希望能够帮助到你! 它们…

交换机和路由器的区别

交换机(Switch) 是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到…

计算机网络-路由器和交换机的区别

经过了前面两篇博客,我们大概都认识了交换机和路由器了,那么再总结一下交换机和路由器的区别。 交换机和路由器都是网络硬件,那么主要区别是什么呢?按我理解,交换机是用来连接局域网的,路由器是用来连接互联…

常用第三方接口

作者:知乎用户 链接:https://www.zhihu.com/question/21608863/answer/123009622 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 聚合数据、百度APIStore、Apix、通联数据、HaoService、数说聚…