【发布时间】:2020-04-15 12:48:13
【问题描述】:
我有一个 numpy 数组和一个列表,该列表定义了我要选择的行。 执行此操作的最佳方法是什么?
import numpy as np
a = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b = np.array([[1],
[0],
[2]])
想要的结果
np.array([[2],
[4],
[9]])
我试过 np.take() 但这不起作用。
亲切的问候
编辑:由于需要在大型数组上重复执行此操作,我正在寻找一种矢量化方法(无循环)
【问题讨论】:
-
实现这个的数学逻辑是什么?
-
对于
a中的每一行,您选择b定义的列中的元素 -
因此您想要
a的第一行的第一个元素、第二行的第0 个元素和最后一行的第二个元素(定义在b)