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

2024-06-17 13:19:24 发布

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

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

array 0: [10, 100]

array 1: [-20, -40]

array 2: [50, -70]

desired result: [60, -110]


1条回答
网友
1楼 · 发布于 2024-06-17 13:19:24

我不知道它和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

相关问题 更多 >