计算相对于2 numpy数组

时间:2017-01-04 05:08:58

标签: python numpy

我有两个numpy数组

arr1 = [ 1.32020091  1.22581158  1.1768816   1.1323538   1.14464306  1.08879001]
arr2 = [ 1.59808117  1.75764704  1.92353157  2.06407594  2.09463725  2.08504829]

其中arr1arr2是基础/参考实施的加速值。我现在想要计算的是来自每个arr1arr2的加速比例(贡献)。当然,我可以做以下

print arr1/(arr1+arr2)*100
print arr2/(arr1+arr2)*100

[ 45.2389752   41.0869309   37.95886341  35.42558086  35.33633869  34.30515063]
[ 54.7610248   58.9130691   62.04113659  64.57441914  64.66366131  65.69484937]

但这不正确,因为如果你查看arr11.08879001)和arr22.08504829)的最后一个值,它会说{{1}在加速方面的贡献非常微不足道,而加速几乎是1.08879001的两倍。

如何计算每个阵列的百分比贡献?贡献仍然需要加起来2.08504829

1 个答案:

答案 0 :(得分:3)

如果arr1arr2代表倍数,您只需要在进行计算之前从每个中减去1

print (arr1 - 1) / (arr1 + arr2 - 2) * 100
print (arr2 - 1) / (arr1 + arr2 - 2) * 100

在您的示例中,最后两个值分别为7.6%和92.4%。