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

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)

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

表示具有列/行标签的矩阵

根据在 Spinner 中选择的数字,相同的片段应该出现在另一个之下。如何?

如何防止 C# WinForm 列表视图选择更改时按下键和列表视图根据第一列自动查找下一行

根据熊猫数据框中的最后一个值选择列

Python代码阅读(第41篇):矩阵转置

如果存在于列表中,则根据另一列的值选择列