|
|
|
|
|
|
|
|
|
|
|
import argparse |
|
import sys |
|
|
|
import numpy as np |
|
|
|
|
|
aggregate_funcs = { |
|
"std": np.std, |
|
"var": np.var, |
|
"median": np.median, |
|
"mean": np.mean, |
|
"min": np.min, |
|
"max": np.max, |
|
} |
|
|
|
|
|
def main(): |
|
parser = argparse.ArgumentParser() |
|
parser.add_argument("-i", "--input_file", required=True, type=str) |
|
parser.add_argument("-n", "--repeat_times", required=True, type=int) |
|
parser.add_argument("-o", "--output_file", required=False) |
|
parser.add_argument("-f", "--func", required=False, default="mean") |
|
args = parser.parse_args() |
|
|
|
stream = open(args.output_file, "w") if args.output_file else sys.stdout |
|
|
|
segment_scores = [] |
|
for line in open(args.input_file): |
|
segment_scores.append(float(line.strip())) |
|
if len(segment_scores) == args.repeat_times: |
|
stream.write("{}\n".format(aggregate_funcs[args.func](segment_scores))) |
|
segment_scores = [] |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |
|
|