首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何通过NumPy中的另一个数组中的索引从一个数组中选择值?

如何通过NumPy中的另一个数组中的索引从一个数组中选择值?
EN

Stack Overflow用户
提问于 2022-10-15 23:38:15
回答 1查看 34关注 0票数 -1

我有一个NumPy向量和一个具有不同值的矩阵,如下所示:

代码语言:javascript
运行
AI代码解释
复制
v = np.array([10, 15, 20, 25])

m = np.array([[0.1, 0.2, 0.3, 0.4],
              [0.1, 0.5, 0.3, 0.4],
              [0.12, 0.8, 0.1, 0.2],
              [0.7, 0.0, 0.2, 0.4]])

此外,我还有这样一个“索引矩阵”:

代码语言:javascript
运行
AI代码解释
复制
m_index = np.array([[1, 2],
                    [3, 0],
                    [1, 2],
                    [0, 2]])

现在,我想要两个与m_index形状相同的新矩阵。

在第一个生成的矩阵中,我需要v中由m_index中的索引定义的索引值。

代码语言:javascript
运行
AI代码解释
复制
[[15, 20],
 [25, 10],
 [15, 20],
 [10, 20]]

在第二个生成的矩阵中,我需要m中由m_index中的索引定义的索引值( m_index中的每个索引引用m中相应行中的值):

代码语言:javascript
运行
AI代码解释
复制
[[0.2, 0.3],
 [0.4, 0.1],
 [0.8, 0.1],
 [0.7, 0.2]]
EN

回答 1

Stack Overflow用户

发布于 2022-10-15 23:53:37

您可以在这里使用np.take轴心,如下所示:

代码语言:javascript
运行
AI代码解释
复制
v.take(m_index)

输出:

代码语言:javascript
运行
AI代码解释
复制
array([[15, 20],
       [25, 10],
       [15, 20],
       [10, 20]])

代码语言:javascript
运行
AI代码解释
复制
np.take_along_axis(m ,m_index, axis=1)

输出:

代码语言:javascript
运行
AI代码解释
复制
array([[0.2, 0.3],
       [0.4, 0.1],
       [0.8, 0.1],
       [0.7, 0.2]])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74085360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档