机器学习中numpy的meshgrid的理解和作用

刚开始学习numpy的时候,见到过一次meshgrid函数,当时没有深入理解,也不知道干涉么用的,在后面的i项目中见到好几次,然后查阅了一些好的博客,然后在这里自己做了一下总结。

在项目中经常遇到这种情况,那么他什么意思和想要表达什么结果呢?

x = np.linspace(xmin,xmax,300)
y = np.linspace(ymin,ymax,300)

xx,yy = np.meshgrid(x,y)

然后咱们写一段测试程序:

import numpy as np
#linspace 目的是在0-10之间生成4个数
x = np.linspace(0,10,4)
y = np.linspace(10,20,3)

'''
x = array([ 0. ,  3.33333333, 6.66666667, 10.])

y = array([10., 15., 20.])

'''

然后接下来调用meshgrid函数:

xx,yy = np.meshgrid(x,y)

'''

xx =   array([[ 0.        ,  3.33333333,  6.66666667, 10.        ],
       [ 0.        ,  3.33333333,  6.66666667, 10.        ],
       [ 0.        ,  3.33333333,  6.66666667, 10.        ]])

yy = array([[10., 10., 10., 10.],
           [15., 15., 15., 15.],
           [20., 20., 20., 20.]])


'''

从结果中可以看出,xx,yy都变成了一个3*4的矩阵。为什么变成 3 * 4,因为x,y的值都对xx,yy生成的矩阵有影响。

x中的是产生四个数,y中产生三个数,这样的话,xx就会根据y的值(3)复制三遍,生成一个3*4的二维矩阵,同理,yy会根据x的值生成一个3*4的二维矩阵。为什么会生成这样的结果,我也不太明白。

然后问题来了,为什么要使用meshgrid函数呢,我之前也一直困惑。

目的:因为x,y代表的是坐标向量。比如x:(0,0)点,(3.333,0)点,(6.66,0)点,(10,0)点。在x坐标轴生成四个点,同理在y轴生成三个点。然后通过meshGrid函数,会使这些点铺满这个平面。即生成:【(0,10),(3.33,10),(6.66,10),(10,10)】【(0,15),(3.33,15),(6.66,15),(10,15)】,【(0,20),(3.33,20),(6.66,20),(10,20)】。通过这些点,铺满这个平面。铺满平面之后呢,我用个图给大家解释一下,如下图:

因为在计算机里面,所有的图像都是由矩阵组成的,然后铺满平面生成一个图像,然后这里利用机器学习中的算法,在这个平面里面划分成三个模块,然后在通过测试数据,将测试结果显示在这个图像里面。

简单理解就是这样,如有错误,请在评论指出,喜欢的话可以互相关注,互相学习,一起进步。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员日子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值