【问题标题】:getting the index of min values with Numpy Python使用 Numpy Python 获取最小值的索引
【发布时间】:2021-08-13 05:43:43
【问题描述】:

下面的函数将每个值分成由索引indexL_list 中的值分隔的块。因此它输出索引3-5(即-5)和值的索引之间的最小值。 numpy_argmin_reduceat(a, b)Drawdown 函数都按计划执行,但是numpy_argmin_reduceat(a, b) 的索引输出有问题Drawdown 的最小值与numpy_argmin_reduceat(a, b) 的输出索引不匹配。我该怎么办能解决这个问题吗? 数组:

import numpy as np
# indexes          0, 1, 2,3,4, 5, 6,7, 8, 9,10, 11, 12
L_list = np.array([10,20,30,0,0,-5,11,2,33, 4, 5, 68, 7])
index =  np.array([3,5,7,11])

功能:

#getting the minimum values
Drawdown = np.minimum.reduceat(L_list,index+1)

#Getting the min Index 
def numpy_argmin_reduceat(a, b):
    n = a.max() + 1  # limit-offset
    id_arr = np.zeros(a.size,dtype=int)
    id_arr[b] = 1
    shift = n*id_arr.cumsum()
    sortidx = (a+shift).argsort()
    grp_shifted_argmin = b
    idx =sortidx[grp_shifted_argmin] - b
    min_idx = idx +index
    return min_idx


min_idx =numpy_argmin_reduceat(L_list,index+1)
#printing function
DR_val_index = np.array([np.around(Drawdown,1), min_idx])
DR_result = np.apply_along_axis(lambda x: print(f'Min Values: {x[0]} at index: {x[1]}'), 0, DR_val_index)

输出

Min Values: -5 at index: 4
Min Values: 2 at index: 6
Min Values: 4 at index: 8
Min Values: 7 at index: 11

预期输出:

Min Values: -5 at index: 5
Min Values: 2 at index: 7
Min Values: 4 at index: 9
Min Values: 7 at index: 12

【问题讨论】:

    标签: arrays python-3.x function numpy indexing


    【解决方案1】:

    如果换行

    id_arr[b[1:]] = 1
    

    id_arr[b] = 1
    

    我认为这个函数会像你希望的那样运行。

    【讨论】:

    • 您好,我已经编辑了问题,您可以再看一下。我有另一个问题,索引的改变
    • 不要更改问题,因为这会使人们为回答问题所做的工作无效:提出新问题。附带说明一下,您拥有的 argmin 函数的来源是什么?看起来很眼熟:)
    【解决方案2】:

    你在你的函数中犯了一个错误。你犯的错误是你试图找到最大值而不是最大值的索引。

    在这里:

    n = a.max() + 1

    将其更改为:

    n = np.argmax(a) + 1

    在你写相同 this 的其他情况下执行此操作。 这应该解决你的问题...... 祝你有美好的一天……

    【讨论】:

    • 感谢您的输入,但遗憾的是输出与以前相同。您可以运行代码并对其进行测试。
    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 2019-06-06
    • 2019-02-02
    • 2016-10-18
    相关资源
    最近更新 更多