2014 dxdy logo

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

Математика, Физика, Computer Science, Machine Learning, 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
799
Вот такой однострочник:
Используется синтаксис 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
1361
Москва
В варианте 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
1361
Москва
Aizek128, это не функциональный стиль.

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


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

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

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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