numpy:订阅多维数组中的最外部维度

时间:2018-09-12 19:52:00

标签: python numpy multidimensional-array

我正在处理多个多维数组。为了简单起见,让我们考虑一个虚拟示例:

 array_list=[np.ones(3), np.ones((3,3,3)), np.ones((3,3)), np.ones(3)]

我需要订阅列表中每个数组的最外层维度。例如,我的目标是根据最外层尺寸的指定范围将某些元素设置为零:

array_list[0][0:2]=0
array_list[1][:,:,0:2]=0
array_list[2][:,0:2]=0
array_list[3][0:2]=0

在我的实际应用程序中,我不知道我有多少个数组以及其中有多少维。

我想在for循环中完成任务:

for array in array_list:
    array[???]=0

但是,如果我不知道每个数组的维数,我将努力实现这一目标。

1 个答案:

答案 0 :(得分:3)

使用Ellipsis选择除最后一个尺寸外的所有尺寸(如果只有1,则什么也没有选择)。

for array in array_list:
    array[..., 0:2] = 0