Jak uśrednić listę list w Pythonie?

Problem: Masz listę list i chcesz obliczyć średnią wartość różnych kolumn.

Przykład: Biorąc pod uwagę następującą listę list z czterema wierszami i trzema kolumnami.

data = , , , ]

Chcesz mieć średnie wartości trzech kolumn:


Istnieją trzy metody, które rozwiązują ten problem. Możesz pobawić się nimi w powłoce interaktywnej i przeczytać więcej szczegółów poniżej:

Table of Contents

Metoda 1: Średnia w Pythonie (bez biblioteki)

Prosty one-liner z rozumieniem listy w połączeniu z funkcją zip() na rozpakowanej liście w celu transpozycji listy list wykonuje zadanie w Pythonie.

data = , , , ]# Method 1: Pure Pythonres = print(res)# 

Czy kochasz one-linery w Pythonie? Ja na pewno tak – napisałem nawet o tym całą książkę z wydawnictwem NoStarch z San Francisco. Kliknij, aby sprawdzić książkę w nowej karcie:

W poniższym narzędziu możesz zwizualizować wykonanie kodu i obiekty pamięci tego kodu (wystarczy kliknąć „Dalej”, aby zobaczyć, jak rozwija się jeden krok kodu).

Metoda 2: Uśrednianie za pomocą biblioteki NumPy

Tworzysz tablicę NumPy z danych i przekazujesz ją do funkcji np.average().

data = , , , ]# Method 2: NumPyimport numpy as npa = np.array(data)res = np.average(a, axis=0)print(res)# 

Trument axis funkcji average definiuje, wzdłuż której osi chcesz obliczyć średnią wartość. Jeśli chcesz uśrednić kolumny, zdefiniuj axis=0. Jeśli chcesz uśrednić wiersze, zdefiniuj axis=1. Jeśli chcesz uśrednić wszystkie wartości, pomiń ten argument.

Metoda 3: Mean Statistics Library + Map()

Just to show you another alternative, here’s one using the map() function and our zip(*data) trick to transpose the „matrix” data.

data = , , , ]# Method 3: Statistics + Map()import statisticsres = map(statistics.mean, zip(*data))print(list(res))# 

Funkcja map(function, iterable) stosuje function do każdego elementu w iterable. Jako alternatywę można również użyć rozumienia listy, jak pokazano w metodzie 1 w tym samouczku. W rzeczywistości, Guido van Rossum, twórca Pythona i życzliwy dyktator Pythona na całe życie (BDFL), preferuje rozumienie listy zamiast funkcji map().

Dokąd stąd iść?

Dość teorii, zdobądźmy trochę praktyki!

Aby odnieść sukces w kodowaniu, musisz wyjść na zewnątrz i rozwiązywać prawdziwe problemy dla prawdziwych ludzi. W ten sposób możesz łatwo stać się sześciocyfrowym zarabiającym. I właśnie w ten sposób szlifujesz umiejętności, których naprawdę potrzebujesz w praktyce. W końcu po co uczyć się teorii, której nikt nigdy nie potrzebuje?

Praktyczne projekty to sposób, w jaki wyostrzasz swoją piłę w kodowaniu!

Czy chcesz zostać mistrzem kodu, skupiając się na praktycznych projektach kodowych, które faktycznie zarabiają pieniądze i rozwiązują problemy dla ludzi?

Wtedy zostań freelancerem Pythona! To najlepszy sposób, aby podejść do zadania poprawy swoich umiejętności w Pythonie – nawet jeśli jesteś zupełnie początkujący.

Dołącz do mojego darmowego webinaru „How to Build Your High-Income Skill Python” i zobacz, jak rozwinąłem swój biznes kodowania online i jak Ty też możesz to zrobić – w zaciszu własnego domu.

Dołącz do darmowego webinaru teraz!

Pracując jako badacz systemów rozproszonych, dr Christian Mayer odnalazł swoją miłość do nauczania studentów informatyki.

Aby pomóc studentom osiągnąć wyższy poziom sukcesu w Pythonie, założył stronę internetową poświęconą edukacji programistycznej Finxter.com. Jest autorem popularnej książki programistycznej Python One-Liners (NoStarch 2020), współautorem serii samodzielnie wydawanych książek Coffee Break Python, entuzjastą informatyki, freelancerem i właścicielem jednego z 10 największych blogów Pythona na świecie.

Jego pasją jest pisanie, czytanie i kodowanie. Ale jego największą pasją jest służenie aspirującym koderom poprzez Finxtera i pomaganie im w zwiększaniu ich umiejętności. Możesz dołączyć do jego darmowej akademii e-mailowej tutaj.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.