将numpy数组加在一起以创建具有最大绝对值的新数组

问题描述 投票:0回答:1

我有多个numpy数组,我想将数字加在一起,但忽略会减小结果绝对值的数字。因此对于第一次迭代,我想将数字10,-20和50相加。但是我忽略-20值,因为这会减小结果的绝对值。但是对于下一次迭代,我想忽略100值。有没有简单的方法可以做到这一点?

array 0: [10, 100]

array 1: [-20, -40]

array 2: [50, -70]

desired result: [60, -110]

python numpy
1个回答
0
投票

我不确定它与numpy有什么关系。但是从算法角度来看,您可以像这样完成它:

positives=[]
negatives=[]
result=[]
for i in range(len(array1)):
    if array0[i]<0:
        negatives.append(array0[i])
        positives.append(0)
    else:
        positives.append(array0[i])
        negatives.append(0)

    if array1[i]<0:
        negatives[i]+=array1[i]
    else:
        positives[i]+=array1[i]

    if array2[i]<0:
        negatives[i]+=array2[i]
    else:
        positives[i]+=array2[i]


for i in range(len(array1)):
    if positives[i] >= -  negatives[i]:
        result.append(positives[i])
    else:
        result.append(negatives[i])

return result
© www.soinside.com 2019 - 2024. All rights reserved.