python - 根据一维数组获取二维numpy数组的索引
问题描述
我正在使用 numpy 数组我遇到了障碍,也许你可以帮助我。所以我有一个二维 numpy 数组,这个二维数组中的每个数组都有一个最大值,我需要的是获取最大值的索引而不是二维数组的索引,而是像使用一维数组一样使用索引,我知道我可以用它numpy.argmax
来查找索引,但它是根据二维数组而不是一维数组的索引,也许举个例子会更好:
import numpy as np
arr = np.array([[512, 523, 491],
[512, 531, 495]])
index = np.argmax(arr, axis = 1)
index2 = np.argmax(arr)
print(index)
print(index2)
index = [1, 1]
index2 = 4
我的意思是它做了它应该做的事情,但是如果我需要像一维数组一样的索引怎么办?这是我想要的输出:
index = [1, 4]
所以第一个最大值是 523,所以第一个索引是 1,第二个最大值是 531,所以第二个索引是 4,就像一维数组一样。也许这是一个新手问题,但我不知道该怎么做,这只是一个例子,arr
数组可以更大,所以,任何帮助将不胜感激,谢谢!
解决方案
我能想到的最简单的事情就是在 index.html 中添加一个偏移量。
offset = np.arange(0,arr.shape[0]*arr.shape[1], arr.shape[1])
index1D = offset + index
对于上下文,np.arange 需要 3 个参数:开始、停止和跨步。所以偏移量只是将特定行之前的元素总数添加到索引中。
推荐阅读
- ios - 从 firebase 为不同用户获取特定数据
- firebase - 如何处理这个 Firebase 身份验证困境
- c - nDPI :: 提供协议列表是否删除“默认”协议列表?
- django - “ProgrammingError at / 关系“posts_post”不存在第 1 行:...evious_post_id”、“posts_post”。“next_post_id” FROM “posts_pos...”
- java - 无法将大括号强制到 Intellij Idea 中的下一行
- c++ - 使用 ORB 的多模板匹配、电子元件检测
- asp.net-core - SignalR 从 Blazor WASM 客户端调用 connection.StartAsync() 时出现错误 500 Patterns.RoutePatternException
- android - 检查android模拟器是否使用KVM加速?
- r - 从 R Openair 更改污染季节标题的语言
- loops - ansible 创建多个模板,每个模板都有递增的 var