2011-11-03 12 views
14

Deve esserci un modo più rapido per sostituire i valori in posizione, giusto? Ho una matrice 2D che rappresenta una griglia di elevazioni/batimetria. Voglio sostituire qualcosa di più di 0 con NAN e in questo modo è super lento:Sostituzione rapida sul posto di alcuni valori in una serie numpy

for x in range(elevation.shape[0]): 
    for y in range(elevation.shape[1]): 
     if elevation[x,y] > 0: 
      elevation[x,y] = numpy.NAN 

Sembra che ha così essere un modo molto meglio!

risposta

3
np.putmask(elevation, elevation > 0, np.nan)