如何基于一维数组值获取二维数组值?

时间:2018-08-25 15:24:44

标签: python numpy

>>> 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])。谢谢。

2 个答案:

答案 0 :(得分:2)

(如果您要使用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])

答案 1 :(得分:0)

您可以使用列表理解:

[image[x[0], x[1]] for x in idx]

>>> [11, 13, 19]