Python: поиск среднего значения вложенного списка У меня есть список a = [[1,2,3],[4,5,6],[7,8,9]] Теперь я хочу найти среднее значение этого внутреннего списка, чтобы a = [(1+4+7)/3,(2+5+8)/3,(3+6+9)/3] 'a' не должен быть вложенным списком в конце. Просьба предоставить ответ на общий случай Ответ 1 >>> import itertools >>> [sum(x)/len(x) for x in itertools.izip(*a)] [4, 5, 6] Ответ 2 a = [sum(x)/len(x) for x in zip(*a)] # a is now [4, 5, 6] for your example В Python 2.x, если вы не хотите целочисленного деления, замените sum(x)/len(x) на 1.0*sum(x)/len(x) выше. Документация для zip. Ответ 3 Если у вас установлен numpy: >>> import numpy as np >>> a = [[1,2,3],[4,5,6],[7,8,9]] >>> arr = np.array(a) >>> arr array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> np.mean(arr) 5.0 >>> np.mean(arr,axis=0) array([ 4., 5., 6.]) >>> np.mean(arr,axis=1) array([ 2., 5., 8.])
Ответ 2 a = [sum(x)/len(x) for x in zip(*a)] # a is now [4, 5, 6] for your example В Python 2.x, если вы не хотите целочисленного деления, замените sum(x)/len(x) на 1.0*sum(x)/len(x) выше. Документация для zip.
Ответ 3 Если у вас установлен numpy: >>> import numpy as np >>> a = [[1,2,3],[4,5,6],[7,8,9]] >>> arr = np.array(a) >>> arr array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> np.mean(arr) 5.0 >>> np.mean(arr,axis=0) array([ 4., 5., 6.]) >>> np.mean(arr,axis=1) array([ 2., 5., 8.])