Sto facendo una matrice per divisione in senso puntuale della matrice, tuttavia ci sono alcuni zeri nella matrice dei divisori. Ciò si traduce in un avvertimento e in alcuni NaN. Voglio che questi per mappare a 0, che posso fare in questo modo:Sostituisci divisione con zero numpy
edge_map = (xy/(x_norm*y_norm))
edge_map[np.isnan(edge_map)] = 0
Tuttavia ci sono due problemi con questo, prima di tutto dà ancora un avvertimento (non mi piace avvisi) e la seconda di tutti ciò richiede un secondo passaggio sulla matrice (non è sicuro se ciò è inevitabile) e l'efficienza è molto importante per questa parte del codice. Idee?
Sì quindi questo vorrebbe dire ho bisogno il secondo passaggio, qualsiasi indizio circa l'avvertimento? –
http://stackoverflow.com/a/26248892/382936 suggerisce di utilizzare il contesto 'numpy.errstate (divide = 'ignora')' per sopprimere l'avviso. Vedi anche http://docs.scipy.org/doc/numpy/reference/generated/numpy.errstate.html#numpy.errstate –
Questa è una buona domanda. Una funzione 'where' attiva anche l'avviso quando viene calcolato il risultato. Le maschere sono probabilmente la tua migliore opzione. – Chiel