import pandas as pd
import numpy as np
import sys
def parse(filename):
print("==== ", filename, " ====")
data = np.array(pd.read_table(filename, sep='\t', header=None,
dtype={"value": float}).to_numpy(), dtype=np.float64)
# 共分5组
group = 5
per_group_num = data.size // group
total_num = per_group_num * group
print(per_group_num, total_num)
# 获取相应数据重组
data = data[0:total_num].reshape((per_group_num, group))
# [min, mean, max]
min_array = np.min(data, axis=0)
avg_array = np.mean(data, axis=0)
max_array = np.max(data, axis=0)
stack = np.vstack((min_array, avg_array, max_array))
# print(stack.T)
# print(np.savetxt(sys.stdout.buffer, stack.T, fmt='%.3f'))
# print(np.mean(stack, axis=1))
return stack.T, np.mean(stack, axis=1)
if __name__ == '__main__':
np.set_printoptions(suppress=True, precision=4)
t1, t2 = parse('./data/500kb.txt')
d1 = t1
d2 = t2
print(d1, d2)
t1, t2 = parse('./data/800kb.txt')
d1 = np.concatenate([d1, t1], axis=1)
d2 = np.concatenate([d2, t2])
print(d1, d2)
t1, t2 = parse('./data/1mb.txt')
d1 = np.concatenate([d1, t1], axis=1)
d2 = np.concatenate([d2, t2])
d2 = d2.reshape((d2.size, 1))
# 去除 numpy 输出时的[]
print(np.savetxt(sys.stdout.buffer, d1, fmt='%.3f'))
print(np.savetxt(sys.stdout.buffer, d2.T, fmt='%.3f'))