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.
.