numpy中使用meshgrid生成二维数组矩阵,组成坐标轴上坐标,加上mgrid的理解

1、meshgrid

1、问题描述
  今天在看机器学习视频时,看到预测函数中有下面的代码

xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),
                         np.arange(x2_min, x2_max, resolution))
Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)

  不太懂其中的意思,索性就进行了下面的分析和测试。
2、分析
  该函数可以在二维坐标轴上生成对应的交叉点,每个交叉点对应一个坐标,坐标的X轴取值为:[0. 0.2 0.4 0.6 0.8],Y轴取值为:[1 1.5 2],进行将X/Y轴取值进行组合后,可以拼接成相应的坐标,其测试代码如下:

import numpy as np

XX1, XX2 = np.meshgrid(np.arange(0, 1, 0.2), np.arange(1, 2.1, 0.5))
# [[0.  0.2 0.4 0.6 0.8]
#  [0.  0.2 0.4 0.6 0.8]
#  [0.  0.2 0.4 0.6 0.8]]
print(XX1)
# <class 'numpy.ndarray'>
print(type(XX1))
# (3, 5)
print(XX1.shape)
# [[1.  1.  1.  1.  1. ]
#  [1.5 1.5 1.5 1.5 1.5]
#  [2.  2.  2.  2.  2. ]]
print(XX2)
# 将数据进行扁平化
# [0.  0.2 0.4 0.6 0.8 0.  0.2 0.4 0.6 0.8 0.  0.2 0.4 0.6 0.8]
print(XX1.ravel())
# <class 'numpy.ndarray'>
print(type(XX1.ravel()))
# [1.  1.  1.  1.  1.  1.5 1.5 1.5 1.5 1.5 2.  2.  2.  2.  2. ]
print(XX2.ravel())

Z = np.array([XX1.ravel(), XX2.ravel()])
# [[0.  0.2 0.4 0.6 0.8 0.  0.2 0.4 0.6 0.8 0.  0.2 0.4 0.6 0.8]
#  [1.  1.  1.  1.  1.  1.5 1.5 1.5 1.5 1.5 2.  2.  2.  2.  2. ]]
print(Z)
# [[0.  1. ]
#  [0.2 1. ]
#  [0.4 1. ]
print(Z.T)

2、mgrid

1、代码

# 5j个点,步长为复数表示点数,为实数表示步长
# np.mgrid[start:end:step]
x1, x2 = np.mgrid[-5:5:5j, -5:5:5j]

# 输出结果
[[-5.  -5.  -5.  -5.  -5. ]
 [-2.5 -2.5 -2.5 -2.5 -2.5]
 [ 0.   0.   0.   0.   0. ]
 [ 2.5  2.5  2.5  2.5  2.5]
 [ 5.   5.   5.   5.   5. ]] 
 
 [[-5.  -2.5  0.   2.5  5. ]
 [-5.  -2.5  0.   2.5  5. ]
 [-5.  -2.5  0.   2.5  5. ]
 [-5.  -2.5  0.   2.5  5. ]
 [-5.  -2.5  0.   2.5  5. ]]
print(x1, x2)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值