np.ogrid
是 numpy.lib.index_tricks.nd_grid
的实例。如果步长是复数(例如 5j
),则其大小的整数部分被解释为指定了在起始值和终止值之间创建的点数,其中停止值包含在内。
- 步长不是纯虚数,索引是左闭右开的:
np.ogrid[0:10:2] # 步长默认为1
输出:
array([0, 2, 4, 6, 8])
- 步长是纯虚数,是闭合的索引:
np.ogrid[0:10:2j]
输出:
array([ 0., 10.])
对于一维数组 np.ogrid
与 np.mgrid
的返回值是一样的。而二维数组则不同,先看 np.ogrid
:
Y, X = np.ogrid[0:2, 0:3]
print(X.shape)
print(Y.shape)
X, Y
输出:
(1, 3)
(2, 1)
Out[64]:
(array([[0, 1, 2]]),
array([[0],
[1]]))
为了更直观,可以将其可视化:
def plot_grid(X, Y):
from matplotlib import pyplot as plt
plt.imshow(X)
plt.show()
plt.imshow(Y)
plt.show()
效果:
再看看 np.mgrid
:
Y, X = np.mgrid[0:2, 0:3]
print(X.shape)
print(Y.shape)
X, Y
输出:
(2, 3)
(2, 3)
(array([[0, 1, 2],
[0, 1, 2]]),
array([[0, 0, 0],
[1, 1, 1]]))
可视化:
更高维度的数组可自行研究,其基本原理是一致的。
网友评论