【问题标题】:What are the numpy equivalents of R's row() and col() functions?R 的 row() 和 col() 函数的 numpy 等价物是什么?
【发布时间】:2018-06-30 05:18:49
【问题描述】:

如何创建数组

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))

有没有更好的解决方案?

【问题讨论】:

  • 您也可以发布您在 R 中的操作方式。
  • repeat 也可以,np.repeat(np.arange(4)[:, None], 3, axis=1),但不确定这是否比 tile 更好。

标签: python numpy


【解决方案1】:

您可以使用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了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    相关资源
    最近更新 更多