np.ogrid 与 np.mgrid 方法相似,都是返回一个多维 meshgrid
,区别是前者返回开放式,后者返回密集式数组,数组中元素依据 np.arrange() 方法来生成, mgrid 与 ogrid 联系与区别
联系:
区别
>>> np.mgrid[1:20:5,0:8:1]
array([[[ 1, 1, 1, 1, 1, 1, 1, 1],
[ 6, 6, 6, 6, 6, 6, 6, 6],
[11, 11, 11, 11, 11, 11, 11, 11],
[16, 16, 16, 16, 16, 16, 16, 16]],
[[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 0, 1, 2, 3, 4, 5, 6, 7]]])
>>> np.ogrid[1:20:5,0:8:1]
[array([[ 1],
[ 6],
[11],
[16]]), array([[0, 1, 2, 3, 4, 5, 6, 7]])]
以上是当步长为整数部分,当步长为 复数时,生成元素会以复数整数部分 n ,将元素终点到起点整数范围划分为 n 等份(生成元素中包含终点元素)
>>> ogrid[-1:1:5j]
array([-1. , -0.5, 0. , 0.5, 1. ])