Cos'è Numpy Broadcasting?
Quando si eseguono operazioni aritmetiche su matrici di diverse forme, Numpy si riferisce a questo come Broadcasting. Queste operazioni di array sono spesso eseguite sui rispettivi elementi. Se due array hanno la stessa forma, può essere fatto su di loro con facilità. Anche se questo concetto è utile, la trasmissione non è sempre raccomandata perché può comportare un utilizzo di memoria inefficiente che rallenta il calcolo. Le operazioni numpy vengono spesso eseguite su coppie di array che sono suddivise dall'elemento dall'elemento.
Regole di trasmissione
Una particolare serie di linee guida deve essere seguita durante la trasmissione. Questi sono descritti di seguito:
Ora, discutiamo alcuni esempi di implementazione del concetto di trasmissione.
Esempio 1:
Su coppie di array, le operazioni numpy vengono generalmente eseguite elementi per elementi. I due array devono, nello scenario più semplice, avere la stessa forma, come nell'esempio seguente:
importa numpyCome puoi vedere dal codice sopra, abbiamo due array: "one_arr" e "due_ arr". Ognuno dei quali ha un set separato di valori. I valori in "one_arr" sono [2.0,3.0,1.0] e 'due _arr' sono [3.0,3.0,3.0]. Puoi quindi vedere che il risultato del calcolo del prodotto di questi due array è il seguente:
Quando alcuni requisiti sono soddisfatti dalle forme degli array, la regola di trasmissione di Numpy abbassa questa restrizione. Quando un array e un valore scalare sono uniti in un'operazione, la trasmissione viene dimostrata nella sua forma più elementare. Come puoi vedere, 3 è contenuto nella variabile denominata 'due_arr.'
importa numpyIl codice sopra produce il seguente risultato.
Nell'esempio precedente, in cui "due_arr" era un array, il risultato è equivalente. Possiamo immaginare che lo scalare "due_arr" venga espanso durante il processo aritmetico in un array con la stessa forma di "uno _arr."L'array" due_arr "contiene nuovi elementi che sono semplicemente duplicati del primo scalare. Il confronto di stretching è semplicemente ipotetico. Per rendere le operazioni di trasmissione come memoria e computazionalmente economiche come fattibili, Numpy è abbastanza intelligente da utilizzare il valore scalare originale piuttosto che produrre copie.
Esempio 2:
Ecco un altro semplice programma Python che esegue la trasmissione. Ancora una volta, vengono creati due array contenenti valori diversi. È necessario rimodellare "First_arr" in un vettore di colonna con una forma 3 × 1 per calcolare un prodotto esterno. In seguito, la trasmissione viene eseguita contro "Second_arr" per fornire un risultato della dimensione 3 × 2, noto come prodotto esterno di "First_arr" e "Second_arr.'La trasmissione a 2 × 3 è possibile poiché' Result_arr 'ha la forma 2 × 3 e la forma (3,).
Dopo aver seguito tutti i passaggi sopra menzionati, un vettore deve essere incluso in ogni colonna delle matrici che sono "result_arr" e "second_arr.'Questi hanno dimensioni di 2 × 3 e (2,). La trasposizione di 'Result_arr' produrrà una forma di 3 × 2, che può quindi essere trasmessa contro 'Second_arr' per ottenere la stessa forma. In genere, trasponendo questo produce un prodotto finale nella forma 2 × 3.
importa numpyÈ possibile visualizzare l'output di seguito.
Esempio 3:
Un array tridimensionale può essere trasmesso utilizzando il seguente programma Python. In questo esempio, sono stati generati due array denominati "First_arr" e "Second_arr". L'array 'First_arr' contiene [4,13,26,12] valori e 'Second_arr' contiene [32,67,45,17] valori. Le 2 dimensioni dell'array iniziale fanno la differenza. La somma del primo e del secondo array verrà mostrata di seguito dopo che il codice è stato eseguito. Puoi vedere che abbiamo tre istruzioni di stampa nel codice, ognuna delle quali visualizza il testo "primo array:", "secondo array" e "terzo array:" a sua volta. Viene quindi mostrata la somma di questi due matrici di nuova generazione.
importa numpyEcco lo screenshot di output del codice dato.
Esempio 4:
L'ultimo programma Python che trasmette un array tridimensionale è dato qui. In questo programma sono specificati due array, il primo delle quali ha tre dimensioni. La somma del primo e del secondo array verrà mostrata come mostrato sopra dopo che il codice è stato eseguito. Sebbene i valori in questi array variano, il codice rimanente è lo stesso di quello utilizzato nel programma di esempio sopra.
importa numpySi può vedere nella figura seguente che viene presentato un array tridimensionale dal primo array, seguito da un array bidimensionale dal secondo array e il risultato di questi due che impiegano il principio di trasmissione.
Conclusione
Questo articolo ha discusso di Broadcasting, un concetto cruciale di Python. In Numpy, il termine "trasmissione" si riferisce alla capacità di gestire array di varie forme mentre eseguono operazioni aritmetiche che vengono spesso eseguite. Il soggetto di cui sopra è stato accuratamente coperto da una varietà di esempi. Questo articolo ha utilizzato i programmi di esempio menzionati per dimostrare come trasmettere su array 1-D, 2-D e 3-D, rispettivamente. Puoi provare a eseguire questi esempi sul tuo sistema e visualizzare i risultati per comprendere meglio come tutto funziona in generale.