使用另一个数组的索引查找矩阵上的元素 - python

时间:2016-10-28 18:33:41

标签: python arrays

很抱歉,如果这个问题已在某个地方得到解答,但我找不到我想要的东西!

所以,假设我有一个像这样的矩阵/数组

a = [[1,2,3], [4,5,6], [7,8,9]]

有一个类似下面的数组,它应该表示我想为上面的矩阵检索的元素索引...

b = [2,0,1] # get the 2nd element from a[0], the 0th from a[1] and 1st from a[2]

我想要的是像

c = magic (a,b)
c = [3,4,8] # elements correspondent with the indexes from b

抓住的是,我想做那个没有LOOPS(不适用于/同时或类似) 我尝试过做这样的事......

c = a[:,b[:]]

但无济于事....我还能尝试别的吗?

2 个答案:

答案 0 :(得分:0)

列表理解如:

   c = [ a[indx][b[indx]] for indx in range(len(b)) ]
   print c #[3, 4, 8]

答案 1 :(得分:0)

使用list-comprehension和zip来实现:

a = [[1,2,3], [4,5,6], [7,8,9]]
b = [2,0,1]
c = [a[i][j] for i,j in zip(range(len(b)), b)]
print(c)
# Output [3, 4, 8]