我怎样才能简化这个:
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)
方法很棒,但它复制数组而不是提供 View ,这是我最初想要的。
那么索引(不复制)第 n 维数组以获取其二维切片(带有索引和轴)的最短方法是什么?
最佳答案
灵感来自this answer ,你可以这样做:
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]])
关于python-3.x - 简化 numpy 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62222194/