如何使用广播从列表2d索引的2D numpy数组中获取元素?

时间:2017-03-13 22:40:25

标签: python-2.7 numpy numpy-broadcasting

如果我有一个2D numpy数组,我想使用row,col索引对列表提取元素。

xy = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
idx = np.array([[0, 0], [1, 1], [2, 2]])

for循环解决方案:

elements = list()
for i in idx:
    elements.append(xy[idx[i][0], xy[idx[i][1])

输出:

print(elements)
>> [1, 5, 9]

我找到了解决方案,如果idx是一个元组列表,但我希望找到一个解决方案,不需要先将idx转换为元组。

1 个答案:

答案 0 :(得分:0)

    idy = zip(*idx)
    output = xy[idy]