Python - 如何沿给定轴寻址数组?

use*_*038 5 python indexing numpy

我有一个从3D数组中读取切片的python脚本,如下所示:

def get_from_array(axis, start, end, array):
    if axis == 0:
        slice = array[start:end, :, :]
    elif axis == 1:
        slice = array[:, start:end, :]
    elif axis == 2:
        slice = array[:, :, start:end]
    return slice
Run Code Online (Sandbox Code Playgroud)

我不禁想到必须有更好的方法来做到这一点!有什么建议?

小号

Bi *_*ico 5

你可以这样做:

idx = [slice(None)] * array.ndim
idx[axis] = slice(start, end)
myslice = array[tuple(idx)]
Run Code Online (Sandbox Code Playgroud)