用手绘画图方式解释numpy.mgrid函数的二维三维数组

这个np.mgrid[ 起始值: 结束值: 步长,起始值: 结束值: 步长, … ]
表示的一个[起始值,结束值)的数组,其中间隔为步长。
而x.ravel( ) 将x变为一维数组,“把.前变量拉直”
这样讲很难理解,直接看例子,来吧!

1.首先看这个二维数组例子

import numpy as np

# 生成等间隔数值点
x, y = np.mgrid[1:3:1, 2:4:0.5]
# 将x, y拉直,并合并配对为二维张量,生成二维坐标点
grid = np.c_[x.ravel(), y.ravel()]
print("x:\n", x)
print("y:\n", y)
print("x.ravel():\n", x.ravel())
print("y.ravel():\n", y.ravel())
print('grid:\n', grid)

在这里插入图片描述
生成的结果如上图所示,是一个2行4列的二维数组,之所示是两行四列的是因为行数看x,x:[1,2]则有两行,列数看y,y:[2,2.5,3,3.5]则有4列,为什么这样扩充呢?
是因为为了画网格啊,下面是我用手画的图,供大家参考:
在这里插入图片描述

2.看这个三维数组的例子

import numpy as np  # 导入numpy模块
x, y, z = np.mgrid[1:2:0.5, 2:4:0.5, 3:6:1]
grid = np.c_[x.ravel(), y.ravel(), z.ravel()]
print('x:\n', x)
print('y:\n', y)
print('z:\n', z)
print("x.ravel():\n", x.ravel())
print("y.ravel():\n", y.ravel())
print("z.ravel():\n", z.ravel())
print('grid:\n', grid)

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

这个截图真的太长了,因为换行了,
这个第一个参数是有三个参数时,x,y,z,均为三维数组,三维数组内的二维数组数由第一个参数1:2:0.5决定,为2;
二维数组的行数由第二个参数2:4:0.5决定,为4;
二维数组的列数由第三个参数3:6:1决定,为3。
排布规律也很明显,
x是三维数组,在跨二维数组的方向上排布1,1.5;
y是三维数组,在跨行方向上排布2,2.5,3,3.5;
z是三维数组,在跨列方向上排布3,4,5
来吧,手绘解释,这样是不是非常的直观
在这里插入图片描述
这样你是不是已经理解了呢?点个赞呗。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值