From 3ebc34878f3fd1200305f06ed0d6ba1a3529b457 Mon Sep 17 00:00:00 2001 From: Ralf Gommers Date: Tue, 29 Mar 2011 21:56:25 +0200 Subject: DEP: deprecate normed kw in histogram and restore its old behavior. Introduce density kw. This reverts part of the following commits: 3743430e 400a2a67 3743430e Behavior for normed keyword is again the same as it was in Numpy 1.5. The desired behavior (probability density) is implemented by the new density keyword, which reflects the functionality better than "normed". For a discussion on this issue, see the Numpy mailing list thread started on Aug 6th, 2010. --- numpy/lib/tests/test_function_base.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'numpy/lib/tests/test_function_base.py') diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py index 6e80b0438..ea3ca4000 100644 --- a/numpy/lib/tests/test_function_base.py +++ b/numpy/lib/tests/test_function_base.py @@ -565,10 +565,25 @@ class TestHistogram(TestCase): area = sum(a * diff(b)) assert_almost_equal(area, 1) + # Check with non-constant bin widths (buggy but backwards compatible) + v = np.arange(10) + bins = [0, 1, 5, 9, 10] + a, b = histogram(v, bins, normed=True) + area = sum(a * diff(b)) + assert_almost_equal(area, 1) + + def test_density(self): + # Check that the integral of the density equals 1. + n = 100 + v = rand(n) + a, b = histogram(v, density=True) + area = sum(a * diff(b)) + assert_almost_equal(area, 1) + # Check with non-constant bin widths v = np.arange(10) bins = [0,1,3,6,10] - a, b = histogram(v, bins, normed=True) + a, b = histogram(v, bins, density=True) assert_array_equal(a, .1) assert_equal(sum(a*diff(b)), 1) @@ -576,14 +591,13 @@ class TestHistogram(TestCase): # infinities. v = np.arange(10) bins = [0,1,3,6,np.inf] - a, b = histogram(v, bins, normed=True) + a, b = histogram(v, bins, density=True) assert_array_equal(a, [.1,.1,.1,0.]) # Taken from a bug report from N. Becker on the numpy-discussion # mailing list Aug. 6, 2010. - counts, dmy = np.histogram([1,2,3,4], [0.5,1.5,np.inf], normed=True) + counts, dmy = np.histogram([1,2,3,4], [0.5,1.5,np.inf], density=True) assert_equal(counts, [.25, 0]) - warnings.filters.pop(0) def test_outliers(self): # Check that outliers are not tallied @@ -646,13 +660,10 @@ class TestHistogram(TestCase): wa, wb = histogram([1, 2, 2, 4], bins=4, weights=[4, 3, 2, 1], normed=True) assert_array_almost_equal(wa, array([4, 5, 0, 1]) / 10. / 3. * 4) - warnings.filterwarnings('ignore', \ - message="\s*This release of NumPy fixes a normalization bug") # Check weights with non-uniform bin widths a,b = histogram(np.arange(9), [0,1,3,6,10], \ - weights=[2,1,1,1,1,1,1,1,1], normed=True) + weights=[2,1,1,1,1,1,1,1,1], density=True) assert_almost_equal(a, [.2, .1, .1, .075]) - warnings.filters.pop(0) def test_empty(self): a, b = histogram([], bins=([0,1])) -- cgit v1.2.1