首页 > 解决方案 > 如何根据一维数组值获取二维数组值?

问题描述

>>> image = np.arange(20).reshape((4, 5))
>>> image
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
>>> idx = [[2, 1], [2, 3], [3, 4]]

如何从image指定坐标的数组中获取值idx?从上面的代码中,我想得到值 11 ( image[2, 1])、13 ( image[2, 3]) 和 19 ( image[3, 4])。谢谢你。

标签: pythonnumpy

解决方案


(如果你要使用 numpy,请使用 numpy)

做出定义:

>>> image = np.arange(20).reshape((4, 5))
>>> idx = np.array([[2, 1], [2, 3], [3, 4]]).T

使用 Numpy 的精美索引功能的解决方案:

>>> image[tuple(idx)]
array([11, 13, 19])

推荐阅读