R< row()和col()函数的等价物是什么?

时间:2018-01-21 12:51:01

标签: python numpy

如何创建数组

0 0 ... 0
1 1 ... 1
...
N N ... N

0 1 ... M
0 1 ... M
...
0 1 ... M

我能做的最好的事情是:

a = np.tile(np.arange(N+1),(M+1,1)).T
b = np.tile(np.arange(M+1),(N+1,1))

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:3)

您可以使用np.mgrid(或np.meshgrid)。

>>> np.mgrid[0:5,0:5]
array([[[0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1],
        [2, 2, 2, 2, 2],
        [3, 3, 3, 3, 3],
        [4, 4, 4, 4, 4]],
       [[0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4]]])

如果需要,可以使用a, b = np.mgrid[0:5, 0:5]创建带有第一个矩阵的变量a,使用第二个矩阵创建b

请查看this question以获取更多相关信息。