2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Функциональный стиль в python
Сообщение14.03.2017, 13:28 
Нужно найти среднее арифметическое столбцов матрицы Z(nxm). Пробую писать функциональным стилем в python и решил задачу так:
Код:
def mean(M):
    A = [0 for i in range(m)]
    for line in M:
        A = list(map(lambda a, b: a + b, A, line))
    A = list(map(lambda a: a/N, A))
    return A

Как можно написать лучше ?

 
 
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 13:46 
Вот такой однострочник:
Используется синтаксис Python
def mean(M): return list(map(lambda x: x/len(M[0]), imap(sum,M)))

Если я правильно понял задание и нужно вывести список, в котором каждый элемент - это среднее арифметическое всех элементов соответствующей строки в матрице.
Если нужно найти среднее арифметическое элементов в каждом столбце, то вот так:
Используется синтаксис Python
def mean(M): return list(map(lambda x: x/len(M), imap(sum,zip(*M))))

 
 
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 13:59 
12d3 в сообщении #1200224 писал(а):
Вот такой однострочник:
Используется синтаксис Python
def mean(M): return list(map(lambda x: x/len(M[0]), imap(sum,M)))

Если я правильно понял задание и нужно вывести список, в котором каждый элемент - это среднее арифметическое всех элементов соответствующей строки в матрице.
Если нужно найти среднее арифметическое элементов в каждом столбце, то вот так:
Используется синтаксис Python
def mean(M): return list(map(lambda x: x/len(M), imap(sum,zip(*M))))

Угу в столбце. Спасибо за ответ. Буду познавать дзен дальше ))

 
 
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 14:29 
Аватара пользователя
В варианте 12d3 я бы заменил лямбду на
Используется синтаксис Python
(1.0 / len(M)).__mul__

 
 
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 15:05 
mihaild в сообщении #1200244 писал(а):
В варианте 12d3 я бы заменил лямбду на
Используется синтаксис Python
(1.0 / len(M)).__mul__

Пфф...
Код:
return [x / len(M) for x in map(sum,zip(*M))]

:D

 
 
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 15:08 
Аватара пользователя
Aizek128, это не функциональный стиль.

 
 
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 15:10 
mihaild в сообщении #1200265 писал(а):
Aizek128, это не функциональный стиль.

Да, сглупил. Теперь думаю как дисперсию по столбцам также реализовать красиво )

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group