【问题标题】:extract elements from numpy array of arrays using list使用列表从数组的numpy数组中提取元素
【发布时间】:2019-12-06 16:57:04
【问题描述】:

这应该是基本的,但现在我的头撞墙了一段时间。

我有一个数组数组(16 x 16 of 128 x 128 子数组),例如

a.shape

(16, 16, 128, 128)

我还有一个感兴趣的索引列表

print(indices)

[[2, 4], [3, 11], [6, 3], [9, 1], ......]

我想提取列表中索引对应的子数组。因此,如果传递单个索引的值,则可以正常工作,例如

b = a[2, 4]

print(b.shape)

(128, 128)

但是,如果我尝试使用我的列表索引执行此操作,我不会得到相同的结果:

b = a[[indices[0]]]

print(b.shape)

(2, 16, 128, 128)

我得到了一个 2 x 16 的子数组数组,这是我不想要的。任何帮助表示赞赏!

【问题讨论】:

    标签: python arrays multidimensional-array numpy-ndarray


    【解决方案1】:

    一个简单的解决方法:

    b = a[indices[0][0], indices[0][1]]
    print(b.shape)
    # (128, 128)
    

    【讨论】:

      【解决方案2】:

      其实这两个b是不一样的。第一个是 a[2,4] 而第二个是 a[[indices[0]]] = a[[[2,4]]] 在 Python 3.6.9 中会导致错误。 我猜你的结果是 a[indices[0]].shape = (2,16,128,128)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-15
        • 1970-01-01
        • 2021-12-06
        • 2021-05-07
        • 1970-01-01
        • 2019-08-26
        • 1970-01-01
        • 2016-12-22
        相关资源
        最近更新 更多