2012-07-24 29 views
5

Trong tập lệnh Python của tôi, tôi có các float mà tôi muốn bin. Ngay bây giờ tôi đang làm:Numpy: sử dụng các thùng với phạm vi vô hạn

min_val = 0.0 
max_val = 1.0 
num_bins = 20 
my_bins = numpy.linspace(min_val, max_val, num_bins) 
hist,my_bins = numpy.histogram(myValues, bins=my_bins) 

Nhưng bây giờ tôi muốn thêm hai thùng nhiều hơn để giải thích cho các giá trị mà là < 0.0 và cho những người đang> 1.0. Do đó, một thùng chứa tất cả các giá trị trong (-inf, 0), một giá trị khác trong [1, inf)

Có cách nào đơn giản để thực hiện điều này trong khi vẫn sử dụng chức năng histogram của numpy không?

Trả lời

7

Chức năng numpy.histogram() vui vẻ chấp nhận những giá trị vô hạn trong đối số bins:

numpy.histogram(my_values, bins=numpy.r_[-numpy.inf, my_bins, numpy.inf]) 

Ngoài ra, bạn có thể sử dụng một sự kết hợp của numpy.searchsorted()numpy.bincount(), mặc dù tôi không thấy nhiều lợi thế để tiếp cận đó.

3

Bạn có thể chỉ định numpy.inf làm giới hạn trên và -numpy.inf làm giới hạn thùng dưới.

Các vấn đề liên quan