【问题标题】:Numpy: subscribing outermost dimension in multidimensional arrayNumpy:订阅多维数组中的最外层维度
【发布时间】:2018-09-12 19:52:00
【问题描述】:

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

 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

但如果我不知道每个数组的维数,我正在努力实现这一点。

【问题讨论】:

    标签: python numpy multidimensional-array


    【解决方案1】:

    使用Ellipsis 选择除最后一个以外的所有维度(如果只有 1 个,则不选择任何内容)。

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

    【讨论】:

    • 你知道吗?我仍然没有很好地处理...
    • @piRSquared 我记得把一个问题丢给了另一个回答者,他做了类似的事情......当你这样学习时,它真的很坚持。
    • 感谢您的回答。文档不是很具体,但效果很好
    猜你喜欢
    • 2011-03-04
    • 2017-09-12
    • 2020-07-24
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多