2011-08-13 65 views

Trả lời

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

sản lượng sẽ được

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

trình giống như một quả bom! Cảm ơn – nobody

6

Trong trường hợp câu hỏi của bạn không phải là liên quan đến độ sâu bit là câu trả lời JBernardo của, cách tổng quát hơn để làm điều đó sẽ là một cái gì đó như: (sau chỉnh sửa, câu trả lời của tôi bây giờ là khá nhiều giống như mình)

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

Here 'sa liên kết giới thiệu tốt đẹp cho numpy bool lập chỉ mục.

19

thực sự có một phương pháp cụ thể cho điều này, 'kẹp':

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

đầu ra:

array([[100, 200], 
     [255, 255]], dtype=uint16) 
Các vấn đề liên quan