def get_dcor(x, y): """Calculate distance correlation between two vectors Uses the distance correlation package from: https://github.com/andrewdyates/dcor Parameters ---------- x : numpy.array 1-dimensional array (aka a vector) of the independent, predictor variable y : numpy.array 1-dimensional array (aka a vector) of the dependent, target variable Returns ------- dc : float Distance covariance dr : float Distance correlation dvx : float Distance variance on x dvy : float Distance variance on y """ # cython version of dcor try: import dcor_cpy as dcor except ImportError as e: sys.stderr.write("Please install dcor_cpy.") raise e dc, dr, dvx, dvy = dcor.dcov_all(x, y) return dc, dr, dvx, dvy
def get_dcor(x, y): """ get dcor see: https://github.com/andrewdyates/dcor input: x - predictor vector y - target vector output: dc, dr, dvx, dvy """ # cython version of dcor import dcor_cpy as dcor dc, dr, dvx, dvy = dcor.dcov_all(x, y) return dc, dr, dvx, dvy
import dcor_py import numpy as np # Sanity test for numpy implementation a = [1, 2, 3, 4, 5] b = np.array([1, 2, 9, 4, 4]) print "a: ", a print "b: ", b print "(dcov, dcor, a_dcov, b_dcor)" print "R energy package expected values" print "1.1593101 0.7626762 1.1027239 2.0953281" print "Numpy Implementation" print dcor_py.dcov_all(a, b) print dcor_py.dcov_all(b, a) print dcor_py.dcov_all(a, a) # Sanity test for cython implementation try: import dcor_cpy print "Cython Implementation" print dcor_cpy.dcov_all(a, b) print dcor_cpy.dcov_all(b, a) print dcor_cpy.dcov_all(a, a) except ImportError, e: print "DID YOU BUILD CYTHON FOR YOUR PLATFORM? SEE README!" print print "Cannot import cython implementation.", e
import dcor_py import numpy as np # Sanity test for numpy implementation a = [1,2,3,4,5] b = np.array([1,2,9,4,4]) print "a: ", a print "b: ", b print "(dcov, dcor, a_dcov, b_dcor)" print "R energy package expected values" print "1.1593101 0.7626762 1.1027239 2.0953281" print "Numpy Implementation" print dcor_py.dcov_all(a,b) print dcor_py.dcov_all(b,a) print dcor_py.dcov_all(a,a) # Sanity test for cython implementation try: import dcor_cpy print "Cython Implementation" print dcor_cpy.dcov_all(a,b) print dcor_cpy.dcov_all(b,a) print dcor_cpy.dcov_all(a,a) except ImportError, e: print "DID YOU BUILD CYTHON FOR YOUR PLATFORM? SEE README!" print print "Cannot import cython implementation.", e