You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何根据numpy数组最大值索引提取另一数组对应元素

解法

你已经拿到了axis=0方向的最大值索引max_ind,用numpy内置的take_along_axis方法可以直接提取对应元素,代码如下:

import numpy as np
# 你已有的代码
max_values = array_1.max(axis=0)
max_ind = array_1.argmax(axis=0)
# 提取array_2对应元素
cor_elements = np.take_along_axis(array_2, max_ind[np.newaxis, ...], axis=0)[0]

如果想用高级索引手动实现,也可以用下面的写法:

y, x = np.indices(max_ind.shape)
cor_elements = array_2[max_ind, y, x]

代码说明

  • take_along_axis方法会按照你传入的索引和指定轴,直接从目标数组中提取对应元素,我们给max_ind加了一个新的轴(和array_2的维度数匹配),提取后去掉多余的轴就能得到形状为(2,4)的结果
  • 手动索引的方式中,np.indices生成了后两个维度的坐标网格,和max_ind的第一个维度索引一一对应,即可定位到array_2中所有目标位置的元素

运行上述代码得到的cor_elements就和你给出的预期结果完全一致。

内容的提问来源于stack exchange,提问作者Jab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:54:07