2011-08-13 18 views

Odpowiedz

5
import numpy as np 
my_array = np.array([[100, 200], [300, 400]],np.uint16) 
my_array[my_array > 255] = 255 

wyjście będzie

array([[100, 200], 
     [255, 255]], dtype=uint16) 
+0

działa jak bomba! Dzięki – nobody

6

W przypadku, gdy sprawa nie była tak związana z głębi bitowej jako odpowiedź JBernardo, tym bardziej ogólny sposób, aby zrobić to byłoby coś jak: (po edycja, moja odpowiedź jest obecnie niemal tak samo jak jego)

 
def trunc_to(my_array, limit): 
    too_high = my_array > limit 
    my_array[too_high] = limit 

Here „sa ładne odnośnik intro numpy bool indeksowania.

19

rzeczywiście istnieje specyficzny sposób na to, 'klip':

import numpy as np 
my_array = np.array([[100, 200], [300, 400]],np.uint16) 
my_array.clip(0,255) # clip(min, max) 

wyjściowa:

array([[100, 200], 
     [255, 255]], dtype=uint16) 
Powiązane problemy