From 1b62bdfb04e56f75fc61dbbd1f2600a72951b19d Mon Sep 17 00:00:00 2001 From: David Huard Date: Wed, 20 Jul 2011 14:36:35 -0400 Subject: BUG: fixed histogramdd bug with empty inputs. Closes #1899. --- numpy/lib/function_base.py | 6 +++--- numpy/lib/tests/test_function_base.py | 5 ++++- numpy/lib/tests/test_twodim_base.py | 5 ++++- 3 files changed, 11 insertions(+), 5 deletions(-) (limited to 'numpy/lib') diff --git a/numpy/lib/function_base.py b/numpy/lib/function_base.py index d20304a1b..8a0c0b37d 100644 --- a/numpy/lib/function_base.py +++ b/numpy/lib/function_base.py @@ -335,11 +335,11 @@ def histogramdd(sample, bins=10, range=None, normed=False, weights=None): Found bin edge of size <= 0. Did you specify `bins` with non-monotonic sequence?""") + nbin = asarray(nbin) + # Handle empty input. if N == 0: - return np.zeros(D), edges - - nbin = asarray(nbin) + return np.zeros(nbin-2), edges # Compute the bin number each sample falls into. Ncount = {} diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py index 9df1a916f..105389d6d 100644 --- a/numpy/lib/tests/test_function_base.py +++ b/numpy/lib/tests/test_function_base.py @@ -749,7 +749,10 @@ class TestHistogramdd(TestCase): def test_empty(self): a, b = histogramdd([[], []], bins=([0,1], [0,1])) - assert_array_max_ulp(a, array([ 0., 0.])) + assert_array_max_ulp(a, array([[ 0.]])) + a, b = np.histogramdd([[], [], []], bins=2) + assert_array_max_ulp(a, np.zeros((2, 2, 2))) + def test_bins_errors(self): """There are two ways to specify bins. Check for the right errors when diff --git a/numpy/lib/tests/test_twodim_base.py b/numpy/lib/tests/test_twodim_base.py index a7c0e85c8..37165f672 100644 --- a/numpy/lib/tests/test_twodim_base.py +++ b/numpy/lib/tests/test_twodim_base.py @@ -224,7 +224,10 @@ class TestHistogram2d(TestCase): def test_empty(self): a, edge1, edge2 = histogram2d([],[], bins=([0,1],[0,1])) - assert_array_max_ulp(a, array([ 0., 0.])) + assert_array_max_ulp(a, array([[ 0.]])) + + a, edge1, edge2 = histogram2d([], [], bins=4) + assert_array_max_ulp(a, np.zeros((4, 4))) class TestTri(TestCase): -- cgit v1.2.1