Como fazer a média de uma lista de listas em Python?
Problema: Você tem uma lista de listas e quer calcular a média das diferentes colunas.
Exemplo: Dada a seguinte lista de listas com quatro linhas e três colunas.
data = , , , ]
Você quer ter os valores médios das três colunas:
Exemplo: Existem três métodos que resolvem este problema. Você pode brincar com eles na shell interativa e ler mais detalhes abaixo:
Table of Contents
Método 1: Média em Python (Sem biblioteca)
Um simples one-liner com compreensão de lista em combinação com a função zip()
na lista desempacotada para transpor a lista de listas faz o trabalho em Python.
data = , , , ]# Method 1: Pure Pythonres = print(res)#
Você ama os one-liners em Python? Tenho a certeza – até já escrevi um livro inteiro sobre isso com a Editora São Francisco NoStarch. Clique para ver o livro em uma nova aba:
Você pode visualizar a execução do código e os objetos de memória deste código na seguinte ferramenta (basta clicar em “Next” para ver como um passo do código se desdobra).
Método 2: Média com NumPy Library
Você cria um array NumPy a partir dos dados e o passa para a função np.average().
data = , , , ]# Method 2: NumPyimport numpy as npa = np.array(data)res = np.average(a, axis=0)print(res)#
O argumento axis
da função média define ao longo de qual eixo você quer calcular o valor médio. Se você quiser calcular a média das colunas, defina axis=0
. Se quiser calcular a média de linhas, defina axis=1
. Se quiser calcular a média sobre todos os valores, salte este argumento.
Método 3: Biblioteca de estatísticas médias + Mapa()
Apenas para mostrar outra alternativa, aqui está uma usando a função map()
e o nosso zip(*data)
truque para transpor a “matriz” data
.
data = , , , ]# Method 3: Statistics + Map()import statisticsres = map(statistics.mean, zip(*data))print(list(res))#
A função map(function, iterable)
aplica-se function
a cada elemento em iterable
. Como alternativa, você também pode usar a compreensão de lista como mostrado no método 1 neste tutorial. Na verdade, Guido van Rossum, o criador de Python e o benevolente ditador de Python para a vida (BDFL), prefere a compreensão de lista em vez da função map()
.
Para onde ir a partir daqui?
Suficiente teoria, vamos ter alguma prática!
Para ter sucesso na codificação, você precisa ir lá fora e resolver problemas reais para pessoas reais. É assim que você pode se tornar um ganhador de seis dígitos facilmente. E é assim que você polui as habilidades que você realmente precisa na prática. Afinal de contas, qual é a utilidade de aprender teoria que ninguém nunca precisa?
Projetos práticos é como você afiar sua serra na codificação!
Você quer se tornar um mestre em código, focando em projetos práticos de código que realmente lhe ganham dinheiro e resolvem problemas para as pessoas?
Então torne-se um desenvolvedor Python freelance! É a melhor maneira de abordar a tarefa de melhorar suas habilidades Python – mesmo que você seja um iniciante completo.
Junte-se ao meu webinar gratuito “Como Construir Seu Python de Alta Habilidade” e veja como eu cresci meu negócio de codificação online e como você pode, também – do conforto de sua própria casa.
Junte-se ao webinar gratuito agora!
Ao trabalhar como pesquisador em sistemas distribuídos, o Dr. Christian Mayer encontrou seu amor por ensinar estudantes de informática.
Para ajudar os estudantes a alcançar níveis mais altos de sucesso Python, ele fundou o site de educação em programação Finxter.com. Ele é autor do popular livro de programação Python One-Liners (NoStarch 2020), co-autor da série Coffee Break Python de livros auto-publicados, entusiasta da ciência da computação, freelancer, e proprietário de um dos 10 maiores blogs Python do mundo.
As suas paixões são escrever, ler e codificar. Mas sua maior paixão é servir aspirantes a codificador através do Finxter e ajudá-los a aumentar suas habilidades. Você pode se juntar à sua academia de e-mail grátis aqui.