数字矩阵:根据列表选择列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字矩阵:根据列表选择列相关的知识,希望对你有一定的参考价值。

我有一个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(),但这不起作用。

亲切的问候

编辑:由于需要在大型数组上重复进行此操作,因此我正在寻找一种矢量化方法(无循环)

答案

不是很pythonic,但这应该可以解决您的问题:

res = np.zeros(len(b))
for i, row in enumerate(a):
    res[i] = row[b[i]]

print(res)

以上是关于数字矩阵:根据列表选择列的主要内容,如果未能解决你的问题,请参考以下文章