简化numpy表达式

我该如何简化:

import numpy as np
ex = np.arange(27).reshape(3, 3, 3)

def get_plane(axe, index):
    return ex.swapaxes(axe, 0)[index]  # is there a better way ? 

我找不到numpy函数来获取高维数组中的平面,有吗?

编辑

ex.take(index, axis=axe)方法很棒,但是它复制了数组而不是提供我最初想要的视图。

那么,索引(不复制)第n个维数组以获取带有索引和轴的二维切片的最短方法是什么?

广晃

受此答案启发,您可以执行以下操作:

def get_plane(axe, index):
    slices = [slice(None)]*len(ex.shape)
    slices[axe]=index
    return ex[tuple(slices)]

get_plane(1,1)

输出:

array([[ 3,  4,  5],
       [12, 13, 14],
       [21, 22, 23]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章