随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

np.meshgrid() 生成网格坐标函数,主要用于可视化决策边界

numpy.meshgrid()

生成网格点坐标矩阵

[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)

假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。

至于为什么(其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制),看下面的图片

 我们注意到网格坐标矩阵,其实有大量的重复——XXX的每一行都一样,YYY的每一列都一样

代码:

复制代码
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
m, n = (5, 3)
x = np.linspace(0, 1, m)  #array([0.  , 0.25, 0.5 , 0.75, 1.  ])
y = np.linspace(0, 1, n)  #array([0. , 0.5, 1. ])
X, Y = np.meshgrid(x,y)
'''
X:
   array([[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:
    array([[0. , 0. , 0. , 0. , 0. ],
       [0.5, 0.5, 0.5, 0.5, 0.5],
       [1. , 1. , 1. , 1. , 1. ]])
'''

X.shape  #(3, 5)
Y.shape  #(3, 5)
复制代码

 可以这样理解,x是长度为m的向量,y是长度为n的向量,那么x要复制n-1行一样的x,y首先要转置,然后再补m-1列同样的yT

matplotlib中进行可视化,来查看函数运行后得到的网格化数据的结果

plt.plot(X, Y, marker='.', color='blue', linestyle='none')
plt.show()

说了这么多,这个网格坐标主要应用于等高线的绘制和机器学习中超平面的绘制

例子:

复制代码
x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
y_label = np.array([0, 0, 0, 1, 1, 1])

## 调用逻辑回归模型
lr_clf = LogisticRegression()

## 用逻辑回归模型拟合构造的数据集
lr_clf = lr_clf.fit(x_fearures, y_label) #其拟合方程为 y=w0+w1*x1+w2*x2

# 可视化决策边界
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
plt.title('Dataset')

nx, ny = 200, 100
x_min, x_max = plt.xlim()  #返回x轴的范围
y_min, y_max = plt.ylim()  #返回y轴的范围
x_grid, y_grid = np.meshgrid(np.linspace(x_min, x_max, nx),np.linspace(y_min, y_max, ny))

z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()])
z_proba = z_proba[:, 1].reshape(x_grid.shape)
plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue')

plt.show()
复制代码

 

posted on   小小喽啰  阅读(3583)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示