Mi az a Power Query & M Language: Részletes áttekintés
Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.
A listák szorzása a Pythonban gyakori művelet matematikai számítások végzésekor vagy adatkezelési problémák megoldása során. Számos módja van ennek a feladatnak az Ön igényeitől és a rendelkezésre álló könyvtáraktól függően.
Listák szorzásához Pythonban használhatja a ciklusokhoz, listaértési, zip- és leképezési funkciókat vagy a beépített functools modult. Külső Python-könyvtárak, például a NumPy függvényei is használhatók.
Ez a cikk számos különböző módot mutat be a listák szorzására, mindegyikhez egy kódpéldát és magyarázatot adunk.
Kezdjük el!
Tartalomjegyzék
2 numerikus lista szorzás típusa Pythonban
Mielőtt belemerülnénk a konkrét módszerekbe, meg kell értenie, hogy milyen típusú listaszorzás érhető el.
A Pythonnak számos különböző fogalma van, amelyek a listaszorzás tág fogalma alá tartoznak. Ez magában foglalja a listák replikálását vagy a listán belüli elemek derékszögű szorzatának elérését.
Ez a cikk a listán belüli elemek kétféle aritmetikai szorzására összpontosít:
Szorzás értékkel
Elemi szorzás
Vessünk egy pillantást erre a két fogalomra.
1. Szorzás értékkel
Ha van egész számok listája, érdemes lehet minden elemet megszorozni egy adott értékkel. Például van egy listája [1, 2, 3], és minden elemet meg szeretne szorozni 3-as értékkel.
Megpróbálhatja (helytelenül) a szorzás operátort használni, mint ebben a kódrészletben:
list1 = [1, 2, 3]
result = list1 * 3
Meglepődhet, hogy az eredmény [1, 2, 3, 1, 2, 3, 1, 2, 3]. Ezt listareplikációnak nevezik .
2. Elem-bölcs lista szorzás
Tegyük fel, hogy két listája van: [1, 2, 3] és [4, 5, 6]
A listán belül ugyanabban az indexben lévő elemeket meg akarja szorozni, hogy az eredmény [4, 10, 18] legyen.
Ha a „*” operátor használatával megpróbálja megszorozni a kettőt, hibaüzenetet kap:
TypeError: a sorozat nem szorozható meg a "list" típusú non-int-vel
Ennek az az oka, hogy a szorzóoperátort nem úgy tervezték, hogy a listákkal úgy működjön, mint az egész számokkal vagy a lebegőpontokkal. Ehelyett a listák szorzásához elemenkénti szorzásként ismert műveletre van szükség.
Az elemenkénti szorzás két lista megfelelő elemeit párosítja, és összeszorozza őket, így egy új listát alkot.
Most, hogy megértette ezt a két fogalmat. dolgozzunk végig egy sor technikán a megfelelő eredmények elérése érdekében.
Hogyan használjunk For ciklust több listaelemhez a Pythonban
Tegyük fel, hogy meg akarja szorozni az elemeket egy értékkel. Ehhez a megközelítéshez ismételheti az elemeket a-val, és mindegyiket megszorozhatja egy második értékkel.
Íme egy példa egy listával. Az eredmény változó tartalmazza a kimeneti listát.
list1 = [1, 2, 3, 4]
factor = 3
result = []
for element in list1:
result.append(element * factor)
Ebben az esetben az eredménylista a következő lesz: [3, 6, 9, 12].
A listaértelmezések használata szorzáshoz
A listaértelmezések tömör módot adnak a numerikus típusú listaszorzások végrehajtására. Ugyanazt az eredményt kapja, mint a for ciklus használatával, de kompaktabb szintaxissal.
Íme az előző példa a listaértés használatára:
list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]
Ez a kód ugyanazt a kimenetet eredményezi, mint korábban: [3, 6, 9, 12].
A Zip függvény használata elemi alapú szorzáshoz
Ha két egész számlistája van, érdemes lehet elemenként szorozni a listákat. Ez azt jelenti, hogy az első lista első elemét megszorozza a második lista első elemével, és így tovább az azonos pozíciójú elemekkel.
A zip() függvény akkor érheti el ezt, ha kombinálja a lista megértésével.
A funkció két beviteli lista elemeit egyesíti, lehetővé téve, hogy párhuzamosan hurkoljuk őket. Íme egy példa azonos méretű listák használatára:
list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]
Ebben az esetben az eredményváltozó tartalmazza az eredménylistát: [4, 10, 18].
Tuplesekkel és konstruktorokkal való munka
Néha előfordulhat, hogy egyszerű egész számok helyett sorokat tartalmazó listákkal kell dolgoznia.
A sorok két listájának szorzásához a következők kombinációját használhatja:
zip() függvény
tuple konstruktorok
felsorolja a megértéseket
Íme egy példa:
list1 = [(1, 2), (3, 4)]
list2 = [(5, 6), (7, 8)]
result = [tuple(a * b for a, b in zip(t1, t2)) for t1, t2 in zip(list1, list2)]
Ez az eredmény: [(5, 12), (21, 32)].
A térkép és a lambda függvény használata Pythonban
A Python térképfunkciója kényelmes módja annak, hogy egy iterálható elemre, például egy listára, egy függvényt alkalmazzon.
A Python lambda függvénye egy kis névtelen függvény. Ez azt jelenti, hogy ez egy név nélküli függvény.
Két lista elemenkénti szorzásához kombinálhatja a térkép és a lambda függvényeket:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))
Az eredményváltozó a szorzott listákat tartalmazza: [4, 10, 18].
Az operátori modul használata Pythonban
Az operátori modul rengeteg hasznos funkciót biztosít a különböző adatstruktúrákkal és adattípusokkal való munkavégzéshez.
Az operator.mul() függvény egész számok listájának szorzására használható, ha kombinálja a térképfüggvénnyel.
import operator
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(operator.mul, list1, list2))
Ebben a példában importálja az operátormodult, és a mul() függvényt használja a Python beépített map() függvényével együtt a két lista egyes elemeinek megszorzásához.
Az eredményváltozó a szorzott listákat tartalmazza: [4, 10, 18].
NumPy Library: A tömb és szorzás függvények
A NumPy könyvtár egy hatékony külső könyvtár a Pythonban, amelyet széles körben használnak numerikus számításokhoz és tömbökkel való munkához. Ez a könyvtár különösen hatékony nagy tömbök vagy többdimenziós tömbök kezelésekor.
A NumPy használatához a pip használatával telepítheti:
pip install numpy
Ha elemenkénti szorzást szeretne végrehajtani két listában a NumPy használatával, kövesse az alábbi általános lépéseket:
Konvertálja az egyes listákat NumPy tömbbé a numpy.array() segítségével .
Hajtsa végre a szorzást a NumPy szorzási függvény segítségével.
Opcionálisan konvertálja vissza az eredményt Python-listává a tolist() metódus használatával
Íme egy kódpélda:
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
arr1 = np.array(list1)
arr2 = np.array(list2)
res_arr = np.multiply(arr1, arr2)
result = res_arr.tolist()
Ez ugyanazt az eredményt adja vissza, mint az előző példákban: [4, 10, 18].
A Functools és a NumPy kombinálása Pythonban
A functools könyvtár egy redukciós függvényt tartalmaz, amely egy adott függvényt kumulatívan alkalmaz a lista elemeire, és a listát egyetlen értékre csökkenti.
Két lista szorzásához a Reduction() függvénnyel kombinálhatja a NumPy könyvtár szorzási függvényével.
Íme egy példa:
from functools import reduce
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = reduce(np.multiply, [list1, list2])
Ez a kód importálja a szükséges könyvtárakat, és a redukció() függvényt használja a numpy.multiply() függvénysel együtt a két lista elemenkénti szorzásához.
Listák és egyéb adatstruktúrák használata Pythonban
Az adatelemzés legtöbb aspektusa más adatstruktúrákkal való együttműködést igényel. Például tudását hasznosítani fogja a hiányzó adatok interpolációval történő kezelésekor.
Nézze meg ezt a videót néhány fejlett technikáért:
Végső gondolatok
Különféle módszereket tanult meg a listák aritmetikai szorzására Pythonban. Néhányan csak beépített modulokat és funkciókat használnak, míg mások harmadik féltől származó könyvtárakra támaszkodnak.
Az elemenkénti szorzás képessége számtalan alkalmazás előtt nyitja meg a kaput. Az adatelemzéstől a gépi tanulásig ezek a műveletek számos algoritmus és számítási feladat lényeges részét képezik.
Míg ez a cikk a szorzásra összpontosított, a tanult fogalmak más műveletekre is kiterjednek. Az elemenkénti összeadás, kivonás és osztás is nagyjából ugyanúgy végrehajtható.
Ne feledje, hogy ezeknek a fogalmaknak a megszilárdításának legjobb módja az, ha alkalmazzuk őket – tehát folytassa, indítsa be Python-környezetét, és kezdje el a kísérletezést. Akár feladatokat automatizál, akár adatokat manipulál, akár összetett szoftvereket épít, ezek a technikák kétségtelenül hasznosak lesznek.
Boldog Pythonozást!
Ez az oktatóanyag áttekintést nyújt a Power Query szerkesztőről és az M nyelvről a LuckyTemplates asztalon.
Ismerje meg, hogyan hozhat létre oldalszámozott jelentést, hogyan adhat hozzá szövegeket és képeket, majd exportálhatja a jelentést különböző dokumentumformátumokba.
Ismerje meg, hogyan használhatja a SharePoint automatizálási funkcióját munkafolyamatok létrehozására, és segít a SharePoint-felhasználók, -könyvtárak és -listák mikrokezelésében.
Fejlessze jelentéskészítési készségeit, ha csatlakozik egy adatelemzési kihíváshoz. Az Accelerator segítségével LuckyTemplates szuperfelhasználóvá válhatsz!
Ismerje meg, hogyan számíthatja ki a futó összegeket a LuckyTemplates programban a DAX segítségével. Az összesítések futtatása lehetővé teszi, hogy ne ragadjon le egyetlen egyéni eredménynél sem.
Ismerje meg a változók fogalmát a DAX-ban a LuckyTemplates-en belül, és a változók hatásait a mérőszámok kiszámítására.
Tudjon meg többet a LuckyTemplates Slope diagram nevű egyéni vizualizációról, amely egyetlen vagy több mérőszám növekedésének/csökkenésének megjelenítésére szolgál.
Fedezze fel a LuckyTemplates színtémáit. Ezek elengedhetetlenek ahhoz, hogy jelentései és vizualizációi zökkenőmentesen nézzenek ki és működjenek.
Az átlag kiszámítása a LuckyTemplates alkalmazásban számos módon elvégezhető, hogy pontos információkat kapjon üzleti jelentéseihez.
Nézzük meg a Standard LuckyTemplates Theming témakört, és tekintsünk át néhány olyan funkciót, amely magában a LuckyTemplates Desktop alkalmazásban található.