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



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

array 0: [10, 100]

array 1: [-20, -40]

array 2: [50, -70]

desired result: [60, -110]

我不确定它与 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

最新更新