我想使用2D数组来配置另一个2D数组(它们具有相同的长度),例如:
import numpy as np
tmp = np.array([[0.33, 0.67], [0.67, 0.33]])
index = np.array([[1], [0]])
我想要的是这样的:
In[91]: np.array([tmp[i][index[i]] for i in range(len(index))])
Out[91]:
array([[ 0.67],
[ 0.67]])
它有效,但有更聪明/更有效的方法吗?
答案 0 :(得分:0)
您可以使用index
数组的inedx
和>>> tmp[(np.array(index.shape[::-1])-1)[:,None], index]
array([[ 0.67],
[ 0.67]])
本身作为列来创建行的索引,然后使用简单的索引来获取目标项:< / p>
{{1}}