new: ziperdyzip
It seems you don't want to use NumPy for some reason. Well: this is not using numpy:
rowMean = [sum(row)//len(row) for row in data]
colmean = [sum(col)//len(col) for col in list(map(list, zip(*data)))]
Complete example:
with open('number.txt', 'r') as file1:
data = file1.readlines()
data = [line.split() for line in data]
data = [list(map(int, row)) for row in data]
outData = [list(map(str, row)) + ['avg :', str(sum(row)//len(row)), '\n'] for row in data]
outData.append([str(sum(col)//len(col)) for col in list(map(list, zip(*data)))])
with open('text2.txt', 'w') as file2:
file2.writelines([' '.join(row) for row in outData])
Or in compact with right justification form:
with open('output.txt', 'w') as outfile, open('number.txt', 'r') as infile:
data = [list(map(int, line.split())) for line in infile.readlines()]
outfile.writelines([' '.join([str(el).rjust(4) for el in row] + ['avg :', str(sum(row)//len(row)).rjust(4), '\n']) for row in data])
outfile.write(' '.join([str(sum(col)//len(col)).rjust(4) for col in list(map(list, zip(*data)))]))
output:
1 -20 -100 50 60 avg : -2
3 4 -100 -3 0 avg : -20
-10 5 45 10 -15 avg : 7
-2 -4 -52 19 15
old: Numpy
You can use NumPy
data = [[1, -20, -100, 50, 60],
[3, 4, -100, -3, 0],
[-10, 5, 45, 10, -15]]
import numpy as np
colMean = np.floor(np.mean(data,0)).astype(int).tolist()
rowMean = np.floor(np.mean(data,1)).astype(int).tolist()
I used np.floor()
as from your example it seems you want to round down.