diff options
author | George Burgess IV <gbiv@google.com> | 2020-08-12 16:24:54 -0700 |
---|---|---|
committer | George Burgess <gbiv@chromium.org> | 2020-08-12 23:41:15 +0000 |
commit | 20f7df65dbdd2be116da52f165dc575061d7bc4f (patch) | |
tree | 66a96b425374a64fa1bb28fd28f732d0772f842b | |
parent | 7c7161d3c1c5882461f2f7b59d2df223bf6fbefe (diff) | |
download | toolchain-utils-20f7df65dbdd2be116da52f165dc575061d7bc4f.tar.gz |
crosperf: remove uses of numpy
New in python3 (compared to python2) is a `statistics` module, which
provides all of the functionality we wanted from numpy here. Use that
instead.
BUG=chromium:980719
TEST=Unittests
Change-Id: I5eaa53744142c402d1e71d6b867e434940d41aec
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2353422
Reviewed-by: Tiancong Wang <tcwang@google.com>
Tested-by: George Burgess <gbiv@chromium.org>
-rw-r--r-- | cros_utils/tabulator.py | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/cros_utils/tabulator.py b/cros_utils/tabulator.py index b4092993..27b1c64d 100644 --- a/cros_utils/tabulator.py +++ b/cros_utils/tabulator.py @@ -67,10 +67,10 @@ from __future__ import print_function import collections import getpass import math +import statistics import sys -# TODO(zhizhouy): Drop numpy in the future +# TODO(crbug.com/980719): Drop scipy in the future. # pylint: disable=import-error -import numpy import scipy from cros_utils.email_sender import EmailSender @@ -556,7 +556,7 @@ class AmeanResult(StringMeanResult): def _ComputeFloat(self, cell, values, baseline_values): if self.ignore_min_max: values = _RemoveMinMax(cell, values) - cell.value = numpy.mean(values) + cell.value = statistics.mean(values) class RawResult(Result): @@ -610,7 +610,7 @@ class StdResult(NumericalResult): def _ComputeFloat(self, cell, values, baseline_values): if self.ignore_min_max: values = _RemoveMinMax(cell, values) - cell.value = numpy.std(values) + cell.value = statistics.stdev(values) class CoeffVarResult(NumericalResult): @@ -623,8 +623,8 @@ class CoeffVarResult(NumericalResult): def _ComputeFloat(self, cell, values, baseline_values): if self.ignore_min_max: values = _RemoveMinMax(cell, values) - if numpy.mean(values) != 0.0: - noise = numpy.abs(numpy.std(values) / numpy.mean(values)) + if statistics.mean(values) != 0.0: + noise = abs(statistics.stdev(values) / statistics.mean(values)) else: noise = 0.0 cell.value = noise @@ -731,9 +731,12 @@ class AmeanRatioResult(KeyAwareComparisonResult): if self.ignore_min_max: values = _RemoveMinMax(cell, values) baseline_values = _RemoveMinMax(cell, baseline_values) - if numpy.mean(baseline_values) != 0: - cell.value = numpy.mean(values) / numpy.mean(baseline_values) - elif numpy.mean(values) != 0: + + baseline_mean = statistics.mean(baseline_values) + values_mean = statistics.mean(values) + if baseline_mean != 0: + cell.value = values_mean / baseline_mean + elif values_mean != 0: cell.value = 0.00 # cell.value = 0 means the values and baseline_values have big difference else: @@ -1506,16 +1509,15 @@ if __name__ == '__main__': 'k8': 'PASS', 'k9': 'PASS', 'k10': '0' - }, - { - 'k1': '13', - 'k2': '14', - 'k3': '15', - 'ms_1': '10', - 'k8': 'PASS', - 'k9': 'FAIL', - 'k10': '0' - }], + }, { + 'k1': '13', + 'k2': '14', + 'k3': '15', + 'ms_1': '10', + 'k8': 'PASS', + 'k9': 'FAIL', + 'k10': '0' + }], [{ 'k1': '50', 'k2': '51', |