2012-07-24 8 views
5

W moim skrypcie Pythona mam pływające, które chcę odrzucić. Teraz robię:Numpy: użyj pojemników o nieskończonym zakresie

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) 

Ale teraz chcę dodać jeszcze dwa kosze do odpowiedzialności za wartości, które są < 0.0 i dla tych, które są> 1,0. Jeden pojemnik powinien zatem zawierać wszystkie wartości w (-inf, 0), a drugi w [1, inf)

Czy istnieje prosty sposób, aby to zrobić, nadal używając funkcji numpy? histogram?

Odpowiedz

7

Funkcja numpy.histogram() szczęśliwie przyjmuje wartości nieskończone w bins argumentu:

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

Alternatywnie, można użyć kombinacji numpy.searchsorted() i numpy.bincount(), choć nie widzę wiele korzyści do tego podejścia.

3

Można określić numpy.inf jako górny i -numpy.inf jako dolne limity pojemników.

Powiązane problemy