Numpy Count值的数目,直到满足条件为止

2024-09-30 01:27:03 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有两个相同大小的numpy数组。你知道吗

ArrayOne = np.array([ 2, 5, 5, 6, 7, 10, 13])

ArrayTwo = np.array([ 8, 10, 12, 14, 16, 18, 24])

如何计算数组开始之前有多少个元素。除非满足条件ArrayOne>;=ArrayTwo。在这种情况下,有多少元素,直到那个条件。然后根据结果生成一个数组。你知道吗

作为元素[0]的一个例子,前面有0个元素。对于元素[1],前面有1个元素,不满足ArrayOne>;=ArrayTwo。在ArrayTwo中的元素[5]处,一个大于元素[0],因此在ArrayTwo中的元素[1]之前有四个元素,以此类推。 给出结果

result = np.array([ 0, 1, 2, 3, 4, 4, 3])

提前谢谢。你知道吗


Tags: gtnumpy元素np情况数组result条件
2条回答

基本上,在索引i中,你有值

value = i -count(how often element i in array one was bigger than array two until index i)

因为我用的是自动更正,所以我把这两个数组重命名为a和b

def get_value(a, b, i):
    max_value = a[i]
    nb_smaller_elements = sum(1 for el in range(i) if b[el] < max_value)
    return i - nb_smaller_elements

我想我明白了。使用@paulpanzer的答案,我做了一个for循环来遍历列表。你知道吗

def toggle(ArrayOne,ArrayTwo):
    a = 0
    sum = -1
    linels = []
    for i in range(len(ArrayOne)):
        sum += 1
        a = sum - np.searchsorted(ArrayTwo, ArrayOne[i])
        linels.append(a)
    return np.array(linels)

我知道结果了

linels = np.array([ 0, 1, 2, 3, 4, 4, 3])

相关问题 更多 >

    热门问题