我有两个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]
其中arr1
和arr2
是基础/参考实施的加速值。我现在想要计算的是来自每个arr1
和arr2
的加速比例(贡献)。当然,我可以做以下
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]
但这不正确,因为如果你查看arr1
(1.08879001
)和arr2
(2.08504829
)的最后一个值,它会说{{1}在加速方面的贡献非常微不足道,而加速几乎是1.08879001
的两倍。
如何计算每个阵列的百分比贡献?贡献仍然需要加起来2.08504829
答案 0 :(得分:3)
如果arr1
和arr2
代表倍数,您只需要在进行计算之前从每个中减去1
:
print (arr1 - 1) / (arr1 + arr2 - 2) * 100
print (arr2 - 1) / (arr1 + arr2 - 2) * 100
在您的示例中,最后两个值分别为7.6%和92.4%。