首页 > 解决方案 > 如何根据存储在另一个数组中的索引创建一个 NumPy 数组?

问题描述

假设我有这个 NumPY 数组

A =
array([[0, 1, 3],
       [1, 2, 4]])

我有另一个数组

B =
array([[10, 41, 26, 50, 12, 24],
       [20, 15, 42, 40, 41, 62]])

我想创建另一个数组,它使用 A 中列的索引选择 B 中的元素。那是

C =
array([[10, 41, 50],
       [15, 42, 41]])

标签: pythonnumpy

解决方案


尝试:

B[[[0],[1]], A]

或更一般地说:

B[np.arange(A.shape[0])[:,None], A]

输出:

array([[10, 41, 50],
       [15, 42, 41]])

推荐阅读