numpy如何根据多维数组的阈值找到最近值的索引?

时间:2015-01-13 16:33:56

标签: python arrays numpy

我想根据一个thresold值(如果有的话)找到最近值的索引到多维numpy数组中。

这是一个更大项目的一部分,所以我做了一个更明确的例子。 当计算31时,我想找出是否已计算出接近31计算的数字。 thresold值可能是30的10%。 例如,'30'。然后我想将-2的索引替换为堆栈数组。 我做了一个简短的例子,但有数千个数字我只想减少堆栈数组中的值数

stack = np.full((7,3), np.nan)
prophomo = np.full((7,5,2), np.nan)

stack[:,2] = np.array([-1,-2,3000,-2,2171,-1,-2])

values1 = np.full((5,2), 20)
values2 = np.full((5,2), 30)
k = 0
for i in range(optstack.shape[0]):
    elem = stack[i,2]
    if elem == -1:
        prophomo[i,:,:] = values1 
    elif elem == -2:
        prophomo[i,:,:] = values2 
    else:

        if k == 0:
            prophomo[i,0:-1,0:-1] = 31
        else:
            prophomo[i,0:-1,0:-1] = 50
        k = k + 1

0 个答案:

没有答案