2014-12-04 4 views
7

Qual è l'utilità del parametro out in alcune funzioni numpy come cumsum o cumprod o altre funzioni matematiche?Utilità del parametro 'out' in funzioni numpy

Se il risultato è di dimensioni enormi, aiuta a utilizzare il parametro out per migliorare il tempo di calcolo o l'efficienza della memoria?

This thread fornisce alcune informazioni su come per utilizzarlo. Ma voglio sapere quando devo usare lo e quali potrebbero essere i benefici?

+1

Hai * letto * le risposte? Per esempio. * "Controllare il' dtype' è una ragione per usare 'out'. Un altro è per conservare la memoria 'riutilizzando' un array che esiste già." * – jonrsharpe

+1

@jonrsharpe sì, ho fatto il mio caro. Ma stavo cercando un po 'più di spiegazione. – Sounak

+0

Quindi * menziona * nella tua domanda. Che cosa hai capito da questo e cosa non è chiaro a riguardo? Prova a * essere specifico * quando fai domande. – jonrsharpe

risposta

6

Le funzioni che accettano il parametro out creano nuovi oggetti. Questo è solitamente ciò che ci si aspetterebbe dalla funzione: fornire un array e ottenerne uno nuovo con i dati trasformati.

Tuttavia, immagina di voler chiamare questa funzione diverse migliaia di volte di seguito. Ogni chiamata di funzione creerà un nuovo array, che ovviamente richiede molto tempo.

In questo caso, è possibile creare una matrice di output out e lasciare che la funzione riempia l'array con l'output. Dopo aver elaborato i dati è possibile riutilizzare out e lasciare che la funzione sovrascriva i suoi valori. In questo modo non assegnerai o libererai memoria, il che potrebbe farti risparmiare molto tempo.

+0

'array.cumsum (0, out = array) array.cumsum (1, out = array) array.cumsum (2, out = matrice) ' è meglio che 'array.cumsum (0) .cumsum (1) .cumph (2) ' – Sounak

+1

Penso che dovresti essere ancora in grado di fare' array.cumsum (0, out = array) .cumsum (1, out = array) .cumsum (2, out = array) 'se vuoi tenerlo un solitario. – Jaime