想象一下,我有一个像
这样的python数组array = [[2,3,4],[5,6,7],[8,9,10]]
列表
list = [0,2,1]
我基本上想要一个衬垫从列表
给出的数组中提取索引元素例如,使用给定的数组和列表:
result = [2,7,9]
我的膝盖选项是
result = array[:, list]
但那不起作用
我知道for循环应该这样做,我只是想知道是否有一些索引可以做到这一点
答案 0 :(得分:2)
这样的东西?
In [24]: a
Out[24]:
array([[ 2, 3, 4],
[ 5, 6, 7],
[ 8, 9, 10]])
In [25]: lis
Out[25]: [0, 2, 1]
In [26]: a[np.arange(len(a)), lis]
Out[26]: array([2, 7, 9])
答案 1 :(得分:0)
使用enumerate
创建行索引并解压缩(zip(*...)
)此集合以获取行索引(范围[0, len(list))
)和列索引(lis
):
a[zip(*enumerate(lis))]