如何根据第一个和最后一个索引从 4D 数组中提取 2D 数组

bst*_*adt 1 python numpy

我目前有一个 numpy 的 shape 数组(3, 890, 1100, 2)。我想提取位于位置的二维数组,因此当索引和为时,(0, 0-890, 0-1100, 0)我将留下890x1100值的二维数组。140

换句话说,我想访问数组,就好像参数按顺序排列一样(3, 2, 890, 1100),并执行以下操作:

 newArray = array[0][0]
Run Code Online (Sandbox Code Playgroud)

我知道我可以用循环来做到这一点,但想知道是否有一种更“python-esque”的方法来做到这一点。

Til*_*ann 5

是的,有一种更 Pythonic 的方式来索引 numpy 数组。查看文档了解详细信息。

根据您的具体情况,您可以按如下方式获得所需的结果。

# Generate some data
data = np.random.normal(size=(3, 890, 1100, 2))
# Slice the data
subset = data[0, :, :, 0]
Run Code Online (Sandbox Code Playgroud)

表示:“沿该轴的所有元素”。