Hogyan lehet egy listákból álló listát átlagolni Pythonban?
Probléma: Van egy listánk, és szeretnénk kiszámítani a különböző oszlopok átlagát.
Példa: Adott a következő lista négy sorral és három oszloppal.
data = , , , ]
A három oszlop átlagértékét szeretnéd megkapni:
A feladat megoldására három módszer létezik. Ezekkel játszhatsz az interaktív héjban, és alább olvashatsz további részleteket:
Tartalomjegyzék
1. módszer: Átlagolás Pythonban (könyvtár nélkül)
Egy egyszerű egysoros listamegértés a zip()
függvénnyel kombinálva a kicsomagolt listán a listák listájának transzponálására Pythonban elvégzi a munkát.
data = , , , ]# Method 1: Pure Pythonres = print(res)#
Szereted a Python egysorosokat? Én biztosan – még egy egész könyvet is írtam róla a San Francisco-i NoStarch Kiadóval. Kattints a könyv új lapon történő megtekintéséhez:
A kód végrehajtását és memóriaobjektumait az alábbi eszközzel szemléltetheted (csak kattints a “Tovább”-ra, hogy lásd, hogyan bontakozik ki a kód egy lépése).
2. módszer: Átlagolás NumPy könyvtárral
Egy NumPy tömböt hozol létre az adatokból, és átadod az np.average() függvénynek.
data = , , , ]# Method 2: NumPyimport numpy as npa = np.array(data)res = np.average(a, axis=0)print(res)#
Az average függvény axis
argumentuma határozza meg, hogy melyik tengely mentén szeretné kiszámítani az átlagértéket. Ha oszlopokat akar átlagolni, határozza meg a axis=0
értéket. Ha sorokat akar átlagolni, határozza meg a axis=1
értéket. Ha az összes értékre szeretne átlagolni, hagyja ki ezt az argumentumot.
3. módszer: Mean Statistics Library + Map()
Csak hogy egy másik alternatívát mutassunk, itt van egy, amely az map()
függvényt és a zip(*data)
trükkünket használja a data
“mátrix” transzponálására.
data = , , , ]# Method 3: Statistics + Map()import statisticsres = map(statistics.mean, zip(*data))print(list(res))#
A map(function, iterable)
függvény a iterable
minden egyes elemére function
-et alkalmazza. Alternatívaként használhatod a lista megértését is, ahogyan azt a bemutató 1. módszere mutatja. Valójában Guido van Rossum, a Python megalkotója és a Python jóindulatú diktátora az életért (BDFL) a listamegértést részesíti előnyben a map()
függvénnyel szemben.
Merre tovább?
Elég az elméletből, jöjjön a gyakorlat!
Ahhoz, hogy sikeres legyél a kódolásban, ki kell menned, és valódi problémákat kell megoldanod valódi emberek számára. Így válhatsz könnyen hatszámjegyű keresővé. És így csiszolhatod a gyakorlatban azokat a készségeket, amelyekre valóban szükséged van. Végtére is, mi értelme olyan elméletet tanulni, amire soha senkinek sincs szüksége?
A gyakorlati projektek segítségével élesítheted a fűrészedet a kódolásban!
Kódmesterré akarsz válni úgy, hogy gyakorlati kódprojektekre összpontosítasz, amelyekkel ténylegesen pénzt kereshetsz és problémákat oldhatsz meg az emberek számára?
Akkor legyél Python szabadúszó fejlesztő! Ez a legjobb módja annak, hogy megközelítsd a Python-képességeid fejlesztésének feladatát – még akkor is, ha teljesen kezdő vagy.
Vegyél részt az ingyenes webináriumomon “Hogyan építsd fel a magas jövedelmű Python-képességedet”, és nézd meg, hogyan növeltem meg az online kódolási üzletemet, és hogyan tudod te is megtenni – otthonod kényelméből.
Vegyél részt az ingyenes webináriumon most!
Mialatt az elosztott rendszerek kutatójaként dolgozott, Dr. Christian Mayer megtalálta a szerelmét a számítástechnikai diákok tanítása iránt.
Azért, hogy segítsen a diákoknak magasabb szintű Python-sikereket elérni, megalapította a Finxter.com programozási oktatási weboldalt. A népszerű Python One-Liners című programozási könyv (NoStarch 2020) szerzője, a Coffee Break Python saját kiadású könyvsorozat társszerzője, az informatika szerelmese, szabadúszó, és a világ 10 legnagyobb Python blogjának egyikének tulajdonosa.
A szenvedélye az írás, az olvasás és a kódolás. Legnagyobb szenvedélye azonban az, hogy a Finxteren keresztül szolgálja a feltörekvő programozókat, és segítse őket képességeik fejlesztésében. Ingyenes e-mail akadémiájához itt csatlakozhatsz.