@@ -2757,110 +2757,59 @@ def get_z(x, y):
2757
2757
np .testing .assert_array_equal (np .ma .getmask (zi ),
2758
2758
np .ma .getmask (correct_zi_masked ))
2759
2759
2760
- #-----------------------------------------------------------------
2761
- #-----------------------------------------------------------------
2760
+ #*****************************************************************
2761
+ #*****************************************************************
2762
+
2762
2763
2763
2764
class ksdensity_test ():
2765
+
2766
+
2764
2767
def test_kde_integer_input (self ):
2765
2768
"""Regression test for #1181."""
2766
2769
x1 = np .arange (5 )
2767
- kde = mlab .ksdensity ( x1 + x1 )
2770
+ kde = mlab .GaussianKDE ( x1 )
2768
2771
y_expected = [0.13480721 , 0.18222869 , 0.19514935 , 0.18222869 , 0.13480721 ]
2769
- assert_array_almost_equal (kde [ "result" ] , y_expected , decimal = 6 )
2772
+ assert_array_almost_equal (kde ( x1 ) , y_expected , decimal = 6 )
2770
2773
2771
- @knownfailureif (True )
2772
2774
def test_gaussian_kde_covariance_caching (self ):
2773
2775
x1 = np .array ([- 7 , - 5 , 1 , 4 , 5 ], dtype = np .float )
2774
2776
xs = np .linspace (- 10 , 10 , num = 5 )
2775
2777
# These expected values are from scipy 0.10, before some changes to
2776
2778
# gaussian_kde. They were not compared with any external reference.
2777
2779
y_expected = [0.02463386 , 0.04689208 , 0.05395444 , 0.05337754 , 0.01664475 ]
2778
2780
2779
- # Set the bandwidth, then reset it to the default.
2780
- kde = mlab .ksdensity (x1 , 0.5 )
2781
- y2 = kde ['result' ]
2782
-
2783
- assert_array_almost_equal (y_expected , y2 , decimal = 7 )
2784
-
2785
- kde = mlab .ksdensity (xs , 'scott' )
2786
- y2 = kde ['result' ]
2781
+ # set it to the default bandwidth.
2782
+ kde2 = mlab .GaussianKDE (x1 , 'scott' )
2783
+ y2 = kde2 (xs )
2787
2784
2788
2785
assert_array_almost_equal (y_expected , y2 , decimal = 7 )
2789
2786
2790
- @knownfailureif (True )
2791
- def test_gaussian_kde_subclassing (self ):
2792
- x1 = np .array ([- 7 , - 5 , 1 , 4 , 5 ], dtype = np .float )
2793
- xs = np .linspace (- 10 , 10 , num = 50 )
2794
-
2795
- # gaussian_kde itself
2796
- kde = mlab .ksdensity (xs )
2797
- ys = kde ['result' ]
2798
-
2799
- y_expected = [0.06292987 , 0.06346938 , 0.05860291 , 0.08657652 , 0.07904017 ]
2800
-
2801
- assert_array_almost_equal (y_expected , ys , decimal = 6 )
2802
-
2803
-
2804
- @knownfailureif (True )
2805
- def test_kde_1d (self ):
2806
- #some basic tests comparing to normal distribution
2807
- np .random .seed (8765678 )
2808
- n_basesample = 500
2809
- xn = np .random .randn (n_basesample )
2810
- xnmean = xn .mean ()
2811
- xnstd = xn .std (ddof = 1 )
2812
-
2813
- xs = np .linspace (- 7 , 7 , 501 )
2814
-
2815
- # get kde for original sample
2816
- gkde = mlab .ksdensity (xn )
2817
-
2818
- # evaluate the density function for the kde for some points
2819
- kdepdf = gkde ['result' ]
2820
- intervall = xs [1 ] - xs [0 ]
2821
-
2822
- normpdf = np .random .normal (loc = xnmean , scale = xnstd )
2823
-
2824
- assert_ (np .sum ((kdepdf - normpdf )** 2 )* intervall < 0.01 )
2825
- prob1 = gkde .integrate_box_1d (xnmean , np .inf )
2826
- prob2 = gkde .integrate_box_1d (- np .inf , xnmean )
2827
- assert_almost_equal (prob1 , 0.5 , decimal = 1 )
2828
- assert_almost_equal (prob2 , 0.5 , decimal = 1 )
2829
- assert_almost_equal (gkde .integrate_box (xnmean , np .inf ), prob1 , decimal = 13 )
2830
- assert_almost_equal (gkde .integrate_box (- np .inf , xnmean ), prob2 , decimal = 13 )
2831
-
2832
- assert_almost_equal (gkde .integrate_kde (gkde ),
2833
- (kdepdf ** 2 ).sum ()* intervall , decimal = 2 )
2834
- assert_almost_equal (gkde .integrate_gaussian (xnmean , xnstd ** 2 ),
2835
- (kdepdf * normpdf ).sum ()* intervall , decimal = 2 )
2836
-
2837
2787
def test_kde_bandwidth_method (self ):
2838
2788
2839
2789
np .random .seed (8765678 )
2840
2790
n_basesample = 50
2841
2791
xn = np .random .randn (n_basesample )
2842
2792
2843
2793
# Default
2844
- gkde = mlab .ksdensity (xn )
2794
+ gkde = mlab .GaussianKDE (xn )
2845
2795
# Supply a callable
2846
- gkde2 = mlab .ksdensity (xn , 'scott' )
2847
- assert_almost_equal (gkde ['result' ].all (), gkde2 ['result' ].all ())
2796
+ gkde2 = mlab .GaussianKDE (xn , 'scott' )
2848
2797
# Supply a scalar
2849
- # gkde3 = mlab.ksdensity (xn, bw_method=gkde.factor)
2798
+ gkde3 = mlab .GaussianKDE (xn , bw_method = gkde .factor )
2850
2799
2851
2800
xs = np .linspace (- 7 ,7 ,51 )
2852
- kdepdf = mlab .ksdensity (xs )
2853
- kdepdf2 = mlab .ksdensity (xs , 'scott' )
2854
- #kdepdf3 = gkde3.evaluate(xs)
2855
- #assert_almost_equal(kdepdf, kdepdf3)
2801
+ kdepdf = gkde .evaluate (xs )
2802
+ kdepdf2 = gkde2 .evaluate (xs )
2803
+ assert_almost_equal (kdepdf .all (), kdepdf2 .all ())
2804
+ kdepdf3 = gkde3 .evaluate (xs )
2805
+ assert_almost_equal (kdepdf .all (), kdepdf3 .all ())
2856
2806
2857
- assert_raises (ValueError , mlab .ksdensity , xn , bw_method = 'wrongstring' )
2858
2807
2859
2808
2809
+ #*****************************************************************
2810
+ #*****************************************************************
2860
2811
2861
2812
2862
- #-----------------------------------------------------------------
2863
- #-----------------------------------------------------------------
2864
2813
if __name__ == '__main__' :
2865
2814
import nose
2866
2815
import sys
0 commit comments