NumPy(十七):Meshgrid函数【应用场景:等高线、SVC中超平面的绘制】

article/2025/8/27 0:00:53

一、Meshgrid函数

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 1, 5)
y = np.linspace(0, 1, 3)
print("x = ", x)
print("-" * 50)
print("y = ", y)
print("-" * 100)X, Y = np.meshgrid(x, y)
print("\nX.shape = {0} \nX = \n{1}".format(X.shape, X))
print("-" * 50)
print("Y.shape = {0} \nY = \n{1}".format(Y.shape, Y))
print("-" * 100)

打印结果:

x =  [0.   0.25 0.5  0.75 1.  ]
--------------------------------------------------
y =  [0.  0.5 1. ]
----------------------------------------------------------------------------------------------------X.shape = (3, 5) 
X = 
[[0.   0.25 0.5  0.75 1.  ][0.   0.25 0.5  0.75 1.  ][0.   0.25 0.5  0.75 1.  ]]
--------------------------------------------------
Y.shape = (3, 5) 
Y = 
[[0.  0.  0.  0.  0. ][0.5 0.5 0.5 0.5 0.5][1.  1.  1.  1.  1. ]]
----------------------------------------------------------------------------------------------------Process finished with exit code 0

meshgrid函数的运行过程,可以通过下面的示意图来加深理解:
在这里插入图片描述
再者,也可以通过在matplotlib中进行可视化,来查看函数运行后得到的网格化数据的结果

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 1, 5)
y = np.linspace(0, 1, 3)
print("x = ", x)
print("-" * 50)
print("y = ", y)
print("-" * 100)X, Y = np.meshgrid(x, y)
print("\nX.shape = {0} \nX = \n{1}".format(X.shape, X))
print("-" * 50)
print("Y.shape = {0} \nY = \n{1}".format(Y.shape, Y))
print("-" * 100)plt.plot(X, Y, marker='.', color='blue', linestyle='none')
plt.show()

在这里插入图片描述
当然,我们也可以获得网格平面上坐标点的数据,如下:

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 1, 5)
y = np.linspace(0, 1, 3)
print("x = ", x)
print("-" * 50)
print("y = ", y)
print("-" * 100)X, Y = np.meshgrid(x, y)
print("\nX.shape = {0} \nX = \n{1}".format(X.shape, X))
print("-" * 50)
print("Y.shape = {0} \nY = \n{1}".format(Y.shape, Y))
print("-" * 100)z = [i for i in zip(X.flat, Y.flat)]
print("z = {0}".format(z))

打印结果:

x =  [0.   0.25 0.5  0.75 1.  ]
--------------------------------------------------
y =  [0.  0.5 1. ]
----------------------------------------------------------------------------------------------------X.shape = (3, 5) 
X = 
[[0.   0.25 0.5  0.75 1.  ][0.   0.25 0.5  0.75 1.  ][0.   0.25 0.5  0.75 1.  ]]
--------------------------------------------------
Y.shape = (3, 5) 
Y = 
[[0.  0.  0.  0.  0. ][0.5 0.5 0.5 0.5 0.5][1.  1.  1.  1.  1. ]]
----------------------------------------------------------------------------------------------------
z = [(0.0, 0.0), (0.25, 0.0), (0.5, 0.0), (0.75, 0.0), (1.0, 0.0), (0.0, 0.5), (0.25, 0.5), (0.5, 0.5), (0.75, 0.5), (1.0, 0.5), (0.0, 1.0), (0.25, 1.0), (0.5, 1.0), (0.75, 1.0), (1.0, 1.0)]Process finished with exit code 0

二、Meshgrid函数的一些应用场景

Meshgrid函数常用的场景有等高线绘制及机器学习中SVC超平面的绘制(二维场景下)。

1、等高线

在这里插入图片描述

import tensorflow as tfimport matplotlib.pyplot as pltdef func(x):""":param x: [b, 2]:return:"""z = tf.math.sin(x[..., 0]) + tf.math.sin(x[..., 1])return zx = tf.linspace(0., 2 * 3.14, 500)
y = tf.linspace(0., 2 * 3.14, 500)
# [50, 50]
point_x, point_y = tf.meshgrid(x, y)
# [50, 50, 2]
points = tf.stack([point_x, point_y], axis=2)
# points = tf.reshape(points, [-1, 2])
print('points:', points.shape)
z = func(points)
print('z:', z.shape)plt.figure('plot 2d func value')
plt.imshow(z, origin='lower', interpolation='none')
plt.colorbar()plt.figure('plot 2d func contour')
plt.contour(point_x, point_y, z)
plt.colorbar()
plt.show()

打印结果:

points: (500, 500, 2)
z: (500, 500)

在这里插入图片描述
在这里插入图片描述

2、SVM中超平面的绘制

在这里插入图片描述




参考资料:
MatLab:meshgrid
Numpy中Meshgrid函数介绍及2种应用场景


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

相关文章

opencv-meshgrid

opencv-meshgrid 一句话描述 使用opencv::repeat函数和std::iota函数完成meshgrid功能。 小例程 cv::Mat Z cv::Mat::zeros(3, 5, CV_8UC1), X, Y;int x_length Z.cols, y_length Z.rows;std::vector<int> x(x_length);std::iota(x.begin(), x.end(), 1);X cv::re…

python扩展库numpy中函数meshgrid()的使用[当你想要两个for循环嵌套处理时,就该想到它]

看一个简单的例子&#xff1a; 设有一个3阶方阵Z&#xff0c; 其值由式子x^2 y^2生成。 x的取值为4&#xff0c;5&#xff0c;6&#xff1b; y的取值为7&#xff0c;8&#xff0c;9。 按常规的思路应该是由两个循环生成方阵Z&#xff0c;即如下的代码&#xff1a; #!/usr/bin…

np.meshgrid()

目录 1.meshgrid函数介绍2.meshgrid函数官方说明 1.meshgrid函数介绍 参数&#xff1a; *xi&#xff0c;也就是x1&#xff0c;x2&#xff0c;…&#xff0c;xn &#xff1a;表示网格坐标的一维数组。 copy&#xff1a;默认为True&#xff0c;如果为False&#xff0c;就返回原始…

【matlab】meshgrid的使用

函数参数列表 [X,Y] meshgrid(x,y) [X,Y] meshgrid(x) [X,Y,Z] meshgrid(x,y,z) [X,Y,Z] meshgrid(x) meshgrid可以生成2D或者3D的矩阵&#xff0c; 如果为2D&#xff0c;矩阵的shape为&#xff08;y.length, x.length&#xff09; 如果为3D&#xff0c;矩阵的shape为&a…

np.meshgrid

np.meshgrid参考 官方文档给出的解释 Return coordinate matrices from coordinate vectors. Make N-D coordinate arrays for vectorized evaluations of N-D scalar/vector fields over N-D grids, given one-dimensional coordinate arrays x1, x2,…, xn. 参数 indexing : …

meshgrid方法

目录 meshgrid 绘制曲面图三维网络 meshgrid meshgrid 和 mesh 方法的差别在于是否会画出栅格线 绘制曲面图 生成绘制3D图形所需的网格数据。因为在计算机中进行绘图操作时&#xff0c;往往需要一些采样点&#xff0c;然后根据这些采样点来绘制出整个图形。 涉及到x、y这两组数…

matlab meshgrid作用,【 MATLAB 】ndgrid 和 meshgrid 对比理解以及应用

目录 背景 本博文主要分析 ndgrid&#xff0c; meshgrid是附送的&#xff0c;都是类似的东西&#xff0c;学会了一个&#xff0c;另一个很容易就理解了。 为什么会对 ndgrid 感兴趣呢&#xff1f;因为对它的不理解&#xff0c;导致我少写了几篇博文&#xff0c;最后&#xff0c…

Meshgrid用法

在matlab绘制三维曲面图或三维网格图时经常会用到meshgrid指令 比如&#xff1a;通常在确定向量x,y的基础上&#xff0c;使用meshgrid生成新的矩阵数据[X,Y],再输入函数Zf(X,Y),最后使用mesh或surf命令生成三维网格图或三维曲面图。 那么meshgrid指令究竟是什么意思呢&#x…

【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法

------------------------------------------------------------------ meshgrid 函数用来生成网格矩阵&#xff0c;可以是二维网格矩阵。 exp1_1:生成二维网格&#xff0c;用法为&#xff1a;[x y]meshgrid(a b); % a 和b是一维数组&#xff0c;如a[1 2 3]; b [2 3 4]; 则生成…

Python基础(二):Numpy函数介绍:Meshgrid,mgrid,append等

文章目录 np.meshgrid函数np.mgrid函数np.append()函数 [5]参考资料 np.meshgrid函数 meshgrid函数通常使用在数据的矢量化上。它适用于生成网格型数据&#xff0c;可以接受两个一维数组生成两个二维矩阵&#xff0c;对应两个数组中所有的(x,y)对。 meshgrid的作用是&#xf…

【Python】Numpy 中 Meshgrid 函数介绍及简单应用

简单介绍Meshgrid 文字解释 Meshgrid功能为将两个坐标轴上的点转化为平面上的网格&#xff0c;即将两组一维数据分别转化为二维数据&#xff0c;原理为简单复制&#xff08;通过简单复制将以为数组转化为二维数组&#xff0c;即格点&#xff09;。 以上的详细解释&#xff1a…

图像处理之matlab中meshgrid函数用法详解

一、meshgrid()函数基本调用格式 meshgrid函数用来生成网格矩阵&#xff0c;既可以是二维网格矩阵&#xff0c;又可以是三维网格矩阵。 1、[X,Y] meshgrid(x,y) :基于向量x和y中包含的坐标返回二维网格坐标。X是一个矩阵&#xff0c;每一行是x的一个副本&#xff0c;Y也是一…

python meshgrid()理解

本文的目的是记录meshgrid()的理解过程: step1. 通过一个示例引入创建网格点矩阵; step2. 基于步骤1&#xff0c;说明meshgrid()的作用; step3. 详细解读meshgrid()的官网定义; 说明:step1和2 的数据都是基于笛卡尔坐标系的矩阵&#xff0c;目的是为了方便讨论。 step1. 通…

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

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

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

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

交换机和路由器区别

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

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

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

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

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

交换机与路由器技术

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

思科交换机和路由器

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