从作用于整个数组的函数访问索引

Accessing indices from functions acting on entire arrays

我想要一个函数,f,给定一个 (n, 1) numpy 数组 returns 一个 (n, 1) numpy 数组,其中的值是原始值加上它们的 0 -轴索引。

例如:

f(np.array([[0],[0]])) = np.array([[0],[1]])

f(np.array([[4],[2],[3]])) = np.array([[4],[3],[5]])

是否有一些命令,cmd(x),returns 函数正在操作的值的索引? f 的代码如下所示:

def f(x):
    return x + cmd(x)

如果您想要无论 x 的形状如何都可以使用的东西,您需要像这样的东西:

np.indices(x.shape)[0] + 1

如果您使用的是大型阵列,可以优化它以构建较小的阵列。