Come ottimizzare le operazioni array multidimensionali di Numpy con Numexpr
Come massimizzare l'efficienza delle operazioni array multidimensionali di Numpy utilizzando Numexpr
CALCOLO VELOCE
Uno studio di caso del mondo reale sull’ottimizzazione delle prestazioni in Numpy
Questo è un articolo relativamente breve. In esso, utilizzerò uno scenario del mondo reale come esempio per spiegare come utilizzare le espressioni Numexpr negli array Numpy multidimensionali per ottenere miglioramenti significativi delle prestazioni.
Non ci sono molti articoli che spiegano come utilizzare Numexpr in array Numpy multidimensionali e come utilizzare le espressioni Numexpr, quindi spero che questo possa aiutarti.
Introduzione
Di recente, mentre rivedevo alcuni dei miei vecchi lavori, sono inciampato in questo pezzo di codice:
def predict(X, w, b): z = np.dot(X, w) y_hat = sigmoid(z) y_pred = np.zeros((y_hat.shape[0], 1)) for i in range(y_hat.shape[0]): if y_hat[i, 0] < 0.5: y_pred[i, 0] = 0 else: y_pred[i, 0] = 1 return y_pred
Questo codice trasforma i risultati delle previsioni da probabilità a risultati di classificazione 0 o 1 nel modello di regressione logistica di machine learning.
- Bilanciare l’urgenza rispetto alla sostenibilità come team di analisi
- La ricerca vettoriale non è tutto ciò di cui hai bisogno
- Google Cloud si impegna a proteggere i clienti per l’indennizzo dell’IA generativa
Ma cielo, chi userebbe un for loop
per iterare su un ndarray di Numpy?
Puoi prevedere che quando i dati raggiungono una certa quantità, non solo occuperanno molta memoria, ma le prestazioni saranno anche inferiori.
Ebbene sì, la persona che ha scritto questo codice ero io quando ero più giovane.
Con uno spirito di responsabilità, ho intenzione di riscrivere questo codice con la libreria Numexpr oggi.
Lungo il percorso, ti mostrerò come utilizzare Numexpr e l’espressione where
di Numexpr in array Numpy multidimensionali per ottenere significativi miglioramenti delle prestazioni.
Implementazione del codice
Se non sei familiare con l’uso di base di Numexpr, puoi fare riferimento a questo articolo:
Esplorare Numexpr: un potente motore dietro le funzioni di Pandas
Migliora le prestazioni della tua analisi dei dati con le funzioni eval/query di Numexpr di Python e Pandas
towardsdatascience.com