首页 > 解决方案 > numpy:用多维索引索引一维数组

问题描述

如何用高维索引数组索引低维数据数组?

例如:给定一个一维数据数组和一个二维索引数组:

data = np.array([11,12,13])
idx = np.array([[0,1],
                [1,2])

我想得到一个二维数据数组:

np.array([[11,12],
          [12,13]])

标签: numpynumpy-ndarraynumpy-indexing

解决方案


这在 Python/NumPy 中非常简单,得益于先进的 Numpy 索引系统,您只需将索引用作切片,例如data[idx].

data = np.array([11,12,13])
idx = np.array([[0,1],
                [1,2]])

# this will produce the correct result
data[idx]
# array([[11, 12],
#        [12, 13]])

推荐阅读