[NumPy-Tickets] [NumPy] #2177: np.histogramdd does not work with reverse sorted bin sequence
NumPy Trac
numpy-tickets@scipy....
Thu Jun 28 19:52:59 CDT 2012
#2177: np.histogramdd does not work with reverse sorted bin sequence
-------------------------+--------------------------------------------------
Reporter: andyfaff | Owner: somebody
Type: enhancement | Status: new
Priority: normal | Milestone: Unscheduled
Component: Other | Version: 1.6.1
Keywords: |
-------------------------+--------------------------------------------------
Comment(by andyfaff):
The reference documentation for np.histogramdd does not specify that a
supplied sequence for a bin specification needs to be sorted. Whilst this
may be kind of obvious it should be stated.
Moreover, and perhaps more importantly, it does not specify that the bin
sequence is required to be sorted in ascending order. Bin edges sorted in
descending order do not work, the following results in a ValueError?:
{{{
>>>a = 0.1 * (np.arange(21.)-10)
>>>a = a[::-1]
>>>b = np.random.randn(100)
>>>c,d = np.histogramdd(b, bins=[a])
Warning: invalid value encountered in log10 Traceback (most recent call
last):
File "<stdin>", line 1, in <module> File
"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-
packages/numpy/lib/function_base.py", line 314, in histogramdd
decimal = int(-log10(dedges[i].min())) +6
ValueError?: cannot convert float NaN to integer
}}}
The obvious workaround for me is to check if the bin edges are reverse
sorted. If they are, reverse them and histogram, then reverse the output
and bin edges. However, it would be a lot easier if histogramdd worked
with arbitrarily sorted bin edges on each dimension. This kind of
requirement for binning is quite common when dealing with images.
--
Ticket URL: <http://projects.scipy.org/numpy/ticket/2177#comment:1>
NumPy <http://projects.scipy.org/numpy>
My example project
More information about the NumPy-Tickets
mailing list