相关疑难解决方法(0)

使用NumPy从另一个数组及其索引创建2D数组

给定一个数组:

arr = np.array([[1, 3, 7], [4, 9, 8]]); arr

array([[1, 3, 7],
       [4, 9, 8]])
Run Code Online (Sandbox Code Playgroud)

并给出其索引:

np.indices(arr.shape)

array([[[0, 0, 0],
        [1, 1, 1]],

       [[0, 1, 2],
        [0, 1, 2]]])
Run Code Online (Sandbox Code Playgroud)

如何将它们整齐地堆叠在一起以形成新的2D​​阵列?这就是我想要的:

array([[0, 0, 1],
       [0, 1, 3],
       [0, 2, 7],
       [1, 0, 4],
       [1, 1, 9],
       [1, 2, 8]])
Run Code Online (Sandbox Code Playgroud)

这是我目前的解决方案:

def foo(arr):
    return np.hstack((np.indices(arr.shape).reshape(2, arr.size).T, arr.reshape(-1, 1)))
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是执行此操作是否更短/更优雅?

python arrays numpy

5
推荐指数
1
解决办法
382
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1