2012-07-24 25 views
5

Python betiğimde binmek istediğim yüzerim var.Numpy: sonsuz aralıklı kutuları kullanı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) 

Ama şimdi < 0.0 olan değerler için ve> 1.0 olanlar hesaba iki bidonları eklemek istiyorum: Şu anda yapıyorum. Bu nedenle, bir bölme (-inf, 0), diğeri de [1, inf] 'de diğer değerlerin tümünü içermelidir.

Numpy'nin histogram işlevini kullanırken bunu yapmak için herhangi bir kolay yol var mı?

cevap

7

fonksiyon numpy.histogram() mutlu bins argüman sonsuz değerlerini kabul eder: Ben bu yaklaşıma çok avantaj görmüyorum gerçi

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

Alternatif olarak, numpy.searchsorted() ve numpy.bincount() bir arada kullanabilirsiniz.

3

numpy.inf üst ve -numpy.inf alt kutu sınırları olarak belirtebilirsiniz.