Vad är Power Query & M Language: En detaljerad översikt
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Att multiplicera listor i Python är en vanlig operation när man utför matematiska beräkningar eller löser problem vid datamanipulation. Det finns flera sätt att utföra denna uppgift, beroende på dina krav och de bibliotek du har tillgängliga.
För att multiplicera listor i Python kan du använda för loopar, listförståelse, zip- och kartfunktioner, eller den inbyggda funktionsverktygsmodulen. Du kan också använda funktioner från ett externt Python-bibliotek som NumPy.
Den här artikeln kommer att visa dig många olika sätt att multiplicera listor, var och en med ett kodexempel och förklarade resultat.
Låt oss börja!
Innehållsförteckning
2 typer av numerisk listmultiplikation i Python
Innan vi dyker in i de specifika metoderna bör du förstå vilken typ av listmultiplikation de uppnår.
Python har flera olika begrepp som ligger under den breda termen listmultiplikation. Det inkluderar att replikera listor eller att uppnå den kartesiska produkten av element i en lista.
Den här artikeln fokuserar istället på två typer av aritmetisk multiplikation av element i en lista:
Multiplikation med värde
Elementvis multiplikation
Låt oss ta en snabb titt på dessa två begrepp.
1. Multiplikation med värde
När du har en lista med heltal kanske du vill multiplicera varje element med ett specifikt värde. Till exempel har du en lista [1, 2, 3] och du vill multiplicera varje element med värdet 3.
Du kan försöka (felaktigt) att använda multipliceringsoperatorn som i denna kodbit:
list1 = [1, 2, 3]
result = list1 * 3
Du kanske blir förvånad över att resultatet är [1, 2, 3, 1, 2, 3, 1, 2, 3]. Detta kallas listreplikering .
2. Element-Wise List Multiplikation
Anta att du har två listor: [1, 2, 3] och [4, 5, 6]
Du vill multiplicera elementen med samma index i listan för att få [4, 10, 18] som resultat.
Om du försöker multiplicera två med operatorn '*' får du ett felmeddelande:
TypeError: kan inte multiplicera sekvensen med icke-int av typen "list"
Detta beror på att multiplikationsoperatorn inte är utformad för att fungera med listor på det sätt som den gör med heltal eller flytande tal. Istället kräver multiplicering av listor en operation som kallas elementvis multiplikation.
Elementvis multiplikation parar ihop motsvarande element från två listor och multiplicerar dem tillsammans och bildar en ny lista.
Nu när du förstår dessa två begrepp. låt oss arbeta igenom en rad olika tekniker för att uppnå rätt resultat.
Hur man använder en för loop till flera listelement i Python
Anta att du vill multiplicera element med ett värde. För detta tillvägagångssätt kan du iterera genom elementen med a och multiplicera var och en med ett andra värde.
Här är ett exempel med en lista. Resultatvariabeln håller utdatalistan.
list1 = [1, 2, 3, 4]
factor = 3
result = []
for element in list1:
result.append(element * factor)
I det här fallet blir resultatlistan [3, 6, 9, 12].
Hur man använder listförståelser för multiplikation
Listförståelser ger ett kortfattat sätt att utföra den numeriska typen av listmultiplikationer. Du får samma resultat som att använda en for -loop, men med en mer kompakt syntax.
Här är det föregående exemplet med listförståelse:
list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]
Denna kod resulterar i samma utdata som tidigare: [3, 6, 9, 12].
Hur man använder Zip-funktionen för elementvis multiplikation
Om du har två listor med heltal, kanske du vill multiplicera listorna elementvis. Detta innebär att du multiplicerar det första elementet i den första listan gånger det första elementet i den andra listan och så vidare med element i samma position.
Zip () -funktionen kan uppnå detta när du kombinerar den med listförståelse.
Funktionen kombinerar elementen i två inmatningslistor, så att du kan loopa över dem parallellt. Här är ett exempel med listor av samma storlek:
list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]
I det här fallet kommer resultatvariabeln att hålla resultatlistan: [4, 10, 18].
Arbeta med tuplar och konstruktörer
Ibland kan du behöva arbeta med listor som innehåller tupler snarare än enkla heltal.
För att multiplicera två listor med tupler kan du använda en kombination av:
zip() funktion
tupelkonstruktörer
listförståelser
Här är ett exempel:
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)]
Detta är resultatet: [(5, 12), (21, 32)].
Hur man använder en karta och lambdafunktion i Python
Kartfunktionen i Python är ett bekvämt sätt att tillämpa en funktion på varje objekt i en iterabel som en lista.
En lambdafunktion i Python är en liten anonym funktion. Det betyder att det är en funktion utan namn.
För att multiplicera två listor elementmässigt kan du kombinera kart- och lambdafunktioner:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))
Resultatvariabeln kommer att hålla de multiplicerade listorna: [4, 10, 18].
Hur man använder operatörsmodulen i Python
Operatörsmodulen ger en mängd användbara funktioner för att arbeta med olika datastrukturer och typer.
Funktionen operator.mul() kan användas för att multiplicera listor med heltal när du kombinerar den med kartfunktionen.
import operator
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(operator.mul, list1, list2))
I det här exemplet importerar du operatormodulen och använder mul() -funktionen tillsammans med Pythons inbyggda map()- funktion för att multiplicera varje element i de två listorna.
Resultatvariabeln kommer att hålla de multiplicerade listorna: [4, 10, 18].
NumPy Library: Array- och multipliceringsfunktionerna
NumPy - biblioteket är ett kraftfullt externt bibliotek i Python, flitigt använt för numerisk beräkning och arbete med arrayer. Detta bibliotek är särskilt effektivt när det gäller stora arrayer eller flerdimensionella arrayer.
För att använda NumPy kan du installera det med pip:
pip install numpy
För att utföra elementvis multiplikation i två listor med NumPy, följ dessa allmänna steg:
Konvertera varje lista till en NumPy-array med numpy.array() .
Utför multiplikationen med NumPy multiplikationsfunktionen.
Alternativt kan du konvertera resultatet tillbaka till en Python-lista med metoden tolist().
Här är ett kodexempel:
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()
Detta kommer att returnera samma resultat som i de tidigare exemplen: [4, 10, 18].
Hur man kombinerar Functools och NumPy i Python
Functools - biblioteket innehåller en reduceringsfunktion som tillämpar en specifik funktion kumulativt på objekten i en lista, vilket reducerar listan till ett enda värde.
För att multiplicera två listor med reduce() -funktionen kan du kombinera den med multipliceringsfunktionen från NumPy-biblioteket.
Här är ett exempel:
from functools import reduce
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = reduce(np.multiply, [list1, list2])
Den här koden importerar de nödvändiga biblioteken och använder reduce()- funktionen tillsammans med numpy.multiply() för att utföra elementvis multiplikation av de två listorna.
Arbeta med listor och andra datastrukturer i Python
De flesta aspekter av dataanalys kräver arbete med och andra datastrukturer. Till exempel kommer du att använda dina kunskaper när du hanterar saknade data med interpolering.
Kolla in den här videon för några avancerade tekniker:
Slutgiltiga tankar
Du har lärt dig olika metoder för att multiplicera listor aritmetiskt i Python. Vissa använder bara inbyggda moduler och funktioner, medan andra förlitar sig på tredjepartsbibliotek.
Möjligheten att utföra elementvis multiplikation öppnar dörren till en myriad av applikationer. Från dataanalys till maskininlärning är dessa operationer en viktig del av många algoritmer och beräkningsuppgifter.
Även om den här artikeln fokuserade på multiplikation, sträcker sig begreppen du lärde dig till andra operationer också. Elementvis addition, subtraktion och division kan också utföras på ungefär samma sätt.
Kom ihåg att det bästa sättet att befästa dessa begrepp är genom att tillämpa dem - så fortsätt, starta din Python-miljö och börja experimentera. Oavsett om du automatiserar uppgifter, manipulerar data eller bygger komplex mjukvara, kommer dessa tekniker utan tvekan att vara användbara.
Glad Pythonning!
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.
Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.
Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!
Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.
Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.
Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.
Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.
Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.
Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.