Metadata-Version: 1.0
Name: kern-smooth
Version: 1.0.14
Summary: A python implementation of KernSmooth package (https://cran.r-project.org/web/packages/KernSmooth):kernel smoothing and density estimation functions based on the book: Wand, M.P. and Jones, M.C. (1995) "Kernel Smoothing".
Home-page: https://github.com/AlexanderButyaev/kern_smooth
Author: Alexander Butyaev
Author-email: alexander.butyaev@mail.mcgill.ca
License: MIT
Description: KernSmooth for Python
        =====================
        Porting popular R library KernSmooth to python.
        
        Functions for Kernel Smoothing and Density Estimation.
        
        Transformed R and Fortran functions into Python(2,3) code.
        
        Installation:
        -------------
        
        .. code:: shell
        
        		pip install kern-smooth
        
        
        Main function of the module:
        ----------------------------
        
        .. code:: python
                
                def densCols(x, y=None, nbin=128, bandwidth=None)
        
        
        Produces a vector of numbers which encode the local densities at each point in dataset.
        
        x, y : 1D numpy array with coordinates of the points density will be estimated on
        
        nbin : [optional] int or [int, int] - number of bins along each axis
            (in case of single value - [nbin, nbin] will be used). Default value 128.
        
        bandwidth : [optional] numeric vector (len of 1 or 2) of smoothing bandwidth.
        
        Returns: numpy array with numerical representation (in range [0,1]) of point densities.
        
        Attention: For return value numpy.nan values are allowed in case of nan / infinite values in original dataset 
        
        Source: R::grDevices::densCols
        
        
        Usage
        -----
        
        Generate data for plotting
        
        .. code:: python
        
            from matplotlib import pyplot as plt
            from matplotlib import cm
            import numpy as np
            np.random.seed(0)
            # create two 'bulbs' with normal distributions
            mean1 = [0, 0]
            cov1 = [[5, 0], [0, 30]]  # diagonal covariance
            x1, y1 = np.random.multivariate_normal(mean1, cov1, 50000).T
            mean2 = [5, 17]
            cov2 = [[30, 0], [0, 5]]  # diagonal covariance
            x2, y2 = np.random.multivariate_normal(mean2, cov2, 50000).T
            x = np.hstack([x1,x2])
            y = np.hstack([y1,y2])
        
        
        Generate point densities:
        
        .. code:: python
        
            from kern_smooth import densCols
            densities = densCols(x, y, nbin = 128)
        
        
        Plot the result
        
        .. code:: python
        
            sc = plt.scatter(x, y, c=densities, s=15, edgecolors='none', alpha=0.75, cmap=cm.jet)
            plt.colorbar(sc)
            plt.show()
        
        
        Result
        ------
        ![Result](https://github.com/AlexanderButyaev/kern_smooth/blob/master/example_density.png) 
        
        Author
        ------
        Alexander Butyaev
        
Keywords: statistics,probability,KDE,PDF,kernel density estimation
Platform: UNKNOWN
