Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
Moltiplicare le liste in Python è un'operazione comune quando si eseguono calcoli matematici o si risolvono problemi nella manipolazione dei dati. Esistono diversi modi per eseguire questa operazione, a seconda dei requisiti e delle librerie disponibili.
Per moltiplicare gli elenchi in Python, puoi utilizzare le funzioni for loop, list comprehension, zip e map o il modulo integrato functools. Puoi anche usare funzioni da una libreria Python esterna come NumPy.
Questo articolo ti mostrerà molti modi diversi per moltiplicare gli elenchi, ciascuno con un esempio di codice e risultati spiegati.
Iniziamo!
Sommario
2 tipi di moltiplicazione di elenchi numerici in Python
Prima di approfondire i metodi specifici, dovresti capire il tipo di moltiplicazione dell'elenco che ottengono.
Python ha diversi concetti che rientrano nel termine generico di moltiplicazione di liste. Ciò include la replica di elenchi o il raggiungimento del prodotto cartesiano degli elementi all'interno di un elenco.
Questo articolo si concentra invece su due tipi di moltiplicazione aritmetica degli elementi all'interno di un elenco:
Moltiplicazione per valore
Moltiplicazione per elementi
Diamo una rapida occhiata a questi due concetti.
1. Moltiplicazione per valore
Quando hai un elenco di numeri interi, potresti voler moltiplicare ogni elemento per un valore specifico. Ad esempio, hai una lista [1, 2, 3] e vuoi moltiplicare ogni elemento per il valore 3.
Potresti provare (erroneamente) a utilizzare l'operatore di moltiplicazione come in questo pezzo di codice:
list1 = [1, 2, 3]
result = list1 * 3
Potresti essere sorpreso dal fatto che il risultato sia [1, 2, 3, 1, 2, 3, 1, 2, 3]. Questa operazione è nota come replica dell'elenco .
2. Moltiplicazione di lista per elementi
Supponiamo di avere due liste: [1, 2, 3] e [4, 5, 6]
Vuoi moltiplicare gli elementi allo stesso indice all'interno dell'elenco per produrre [4, 10, 18] come risultato.
Se provi a moltiplicare due elenchi Python insieme usando l'operatore '*', otterrai un errore:
TypeError: impossibile moltiplicare la sequenza per non int di tipo 'elenco'
Questo perché l'operatore di moltiplicazione non è progettato per funzionare con le liste nel modo in cui funziona con numeri interi o float. Invece, la moltiplicazione degli elenchi richiede un'operazione nota come moltiplicazione per elemento.
La moltiplicazione per elemento accoppia gli elementi corrispondenti da due elenchi e li moltiplica insieme, formando un nuovo elenco.
Ora che capisci questi due concetti. lavoriamo attraverso una serie di tecniche per ottenere i risultati corretti.
Come utilizzare un ciclo For per più elementi di elenco in Python
Supponiamo di voler moltiplicare gli elementi dell'elenco per un valore. Per questo approccio, puoi scorrere gli elementi con un ciclo for e moltiplicare ciascuno per un secondo valore.
Ecco un esempio con un elenco. La variabile risultato contiene l'elenco di output.
list1 = [1, 2, 3, 4]
factor = 3
result = []
for element in list1:
result.append(element * factor)
In questo caso, l'elenco dei risultati sarà [3, 6, 9, 12].
Come utilizzare le comprensioni delle liste per la moltiplicazione
Le comprensioni di lista forniscono un modo conciso per eseguire il tipo numerico di moltiplicazioni di lista. Ottieni lo stesso risultato dell'utilizzo di un ciclo for , ma con una sintassi più compatta.
Ecco l'esempio precedente che utilizza la comprensione dell'elenco:
list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]
Questo codice produce lo stesso output di prima: [3, 6, 9, 12].
Come utilizzare la funzione Zip per la moltiplicazione degli elementi
Se hai due liste di numeri interi, potresti voler moltiplicare le liste per elemento. Ciò significa che moltiplichi il primo elemento nel primo elenco per il primo elemento nel secondo elenco e così via con gli elementi nella stessa posizione.
La funzione zip() può raggiungere questo obiettivo quando la combini con la comprensione dell'elenco.
La funzione combina gli elementi di due elenchi di input, consentendo di eseguirne il ciclo in parallelo. Ecco un esempio che utilizza elenchi della stessa dimensione:
list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]
In questo caso, la variabile risultato conterrà l'elenco risultante: [4, 10, 18].
Lavorare con tuple e costruttori
A volte, potresti dover lavorare con elenchi contenenti tuple anziché semplici numeri interi.
Per moltiplicare due liste di tuple , puoi utilizzare una combinazione di:
funzione zip()
costruttori di tuple
elencare le comprensioni
Ecco un esempio:
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)]
Questo è il risultato: [(5, 12), (21, 32)].
Come utilizzare una mappa e una funzione lambda in Python
La funzione map in Python è un modo conveniente per applicare una funzione a ciascun elemento in un iterabile come un elenco.
Una funzione lambda in Python è una piccola funzione anonima. Ciò significa che è una funzione senza nome.
Per moltiplicare due liste in base agli elementi, puoi combinare le funzioni map e lambda:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))
La variabile risultato conterrà le liste moltiplicate: [4, 10, 18].
Come utilizzare il modulo operatore in Python
Il modulo operatore fornisce una vasta gamma di funzioni utili per lavorare con diverse strutture e tipi di dati.
La funzione operator.mul() può essere utilizzata per moltiplicare elenchi di numeri interi quando la si combina con la funzione map.
import operator
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(operator.mul, list1, list2))
In questo esempio, importi il modulo operator e usi la funzione mul() insieme alla funzione map() integrata di Python per moltiplicare ogni elemento delle due liste.
La variabile risultato conterrà le liste moltiplicate: [4, 10, 18].
Libreria NumPy: le funzioni Array e Multiply
La libreria NumPy è una potente libreria esterna in Python, ampiamente utilizzata per il calcolo numerico e per lavorare con gli array. Questa libreria è particolarmente efficiente quando si tratta di array di grandi dimensioni o array multidimensionali.
Per usare NumPy puoi installarlo usando pip:
pip install numpy
Per eseguire la moltiplicazione per elemento in due elenchi utilizzando NumPy, segui questi passaggi generali:
Converti ogni elenco in un array NumPy usando numpy.array() .
Esegui la moltiplicazione utilizzando la funzione di moltiplicazione NumPy.
Facoltativamente, riconvertire il risultato in un elenco Python utilizzando il metodo tolist()
Ecco un esempio di codice:
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()
Ciò restituirà lo stesso risultato degli esempi precedenti: [4, 10, 18].
Come combinare Functools e NumPy in Python
La libreria functools contiene una funzione reduce che applica una funzione specifica cumulativamente agli elementi in un elenco, riducendo l'elenco a un singolo valore.
Per moltiplicare due liste usando la funzione reduce() , puoi combinarla con la funzione moltiplica dalla libreria NumPy.
Ecco un esempio:
from functools import reduce
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = reduce(np.multiply, [list1, list2])
Questo codice importa le librerie necessarie e utilizza la funzione reduce() insieme a numpy.multiply() per eseguire la moltiplicazione per elemento delle due liste.
Lavorare con elenchi e altre strutture dati in Python
La maggior parte degli aspetti dell'analisi dei dati richiede l'utilizzo di elenchi, insiemi e altre strutture di dati. Ad esempio, metterai a frutto le tue conoscenze quando gestisci i dati mancanti con l'interpolazione.
Guarda questo video per alcune tecniche avanzate:
Pensieri finali
Hai imparato vari metodi per moltiplicare le liste aritmeticamente in Python. Alcuni utilizzano solo moduli e funzioni integrati, mentre altri si affidano a librerie di terze parti.
La capacità di eseguire la moltiplicazione per elemento apre le porte a una miriade di applicazioni. Dall'analisi dei dati all'apprendimento automatico, queste operazioni sono una parte essenziale di molti algoritmi e attività computazionali.
Sebbene questo articolo si concentri sulla moltiplicazione, i concetti che hai appreso si estendono anche ad altre operazioni. Anche l'addizione, la sottrazione e la divisione in base agli elementi possono essere eseguite più o meno allo stesso modo.
Ricorda, il modo migliore per consolidare questi concetti è applicarli, quindi vai avanti, avvia il tuo ambiente Python e inizia a sperimentare. Che tu stia automatizzando attività, manipolando dati o creando software complessi, queste tecniche torneranno sicuramente utili.
Buon pitone!
Cos'è il sé in Python: esempi del mondo reale
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.
Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere