2014 dxdy logo

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

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





Начать новую тему Ответить на тему
 
 Функциональный стиль в python
Сообщение14.03.2017, 13:28 


06/03/17
8
Нужно найти среднее арифметическое столбцов матрицы 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 
Заслуженный участник


04/03/09
661
Вот такой однострочник:
Используется синтаксис 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 


06/03/17
8
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 
Заслуженный участник
Аватара пользователя


16/07/14
1099
Москва
В варианте 12d3 я бы заменил лямбду на
Используется синтаксис Python
(1.0 / len(M)).__mul__

 Профиль  
                  
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 15:05 


06/03/17
8
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 
Заслуженный участник
Аватара пользователя


16/07/14
1099
Москва
Aizek128, это не функциональный стиль.

 Профиль  
                  
 
 Re: Функциональный стиль в python
Сообщение14.03.2017, 15:10 


06/03/17
8
mihaild в сообщении #1200265 писал(а):
Aizek128, это не функциональный стиль.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Toucan, maxal, Karan, PAV, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Astroid


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group