python - numpy 获取特定值的索引,发生在给定索引之后
问题描述
我得到了以下 numpy 数组
print(data)
Out: array([[[94 32 63]
[56 19 48]
[29 11 45]
[15 29 33]]
[[60 16 57]
[26 36 62]
[29 56 88]
[96 66 75]]
[[83 52 66]
[28 9 95]
[88 86 69]
[26 78 56]]
[[84 29 98]
[83 0 38]
[87 11 71]
[27 51 37]]
[[11 25 5]
[19 10 13]
[ 8 21 3]
[ 7 5 1]]])
我想找到沿轴 0 的最接近最大值 50% 的值(在哪个索引处),这里的值decay_value
max_value = np.max(data, axis=0)
threshold_decay = 0.5
decay_value = max_value*threshold_decay
但我想在(在较高位置)最大值的位置之后在数组的切片中搜索它
所以基本上在index
下面表示的值之后
index = np.argmax(data, axis=0)
print (index)
Out:array([[0 2 3]
[3 1 2]
[2 2 1]
[1 2 1]])
下面的代码允许我获得最接近的值的位置,threshold_decay
但当然这可能发生在任何索引位置,甚至在最大值的索引之前(在较低位置)。
difference_dummy = np.absolute(data - decay_value)
index_decay = np.argmin(data, axis=0)
print(index_decay)
Out: array([[4, 1, 4],
[4, 3, 4],
[4, 0, 4],
[4, 4, 4]])
确实,我正在查看的结果如下
Out: array([[4, 4, 4],
[4, 3, 4],
[4, 4, 4],
[4, 4, 4]])
由于我正在使用的矩阵可能非常大,我将不胜感激任何没有循环的pythonic解决方案
解决方案
推荐阅读
- regex - 单元格似乎是空的,但一直说它包含值
- java - JSON 和 JAVA 的 FOR 循环
- javascript - 脚本标签不在 HTML 文件中执行,而是在新文件中执行?
- html - 对 html 和 css 有点陌生
- cplex - CPLEX:OPL 无法提取表达式
- json - 如何将 JSON 对象保存到多个 JSON 对象 - TypeScript
- python - 查找字符串排列的程序 - 错误
- api - PHP 致命错误:未捕获的 InvalidArgumentException:供应商/google/apiclient/src/Google/Client.php:423 中的令牌格式无效
- flask - Flask/React 应用程序,下载的二进制(pkpass)文件与服务器上的相同文件不同
- java - 计算BST高度的递归函数