Cómo obtener la correlación de dos vectores en python

En matlab utilizo

a=[1,4,6] b=[1,2,3] corr(a,b) 

que devuelve .9934. He intentado numpy.correlate pero devuelve algo completamente diferente. ¿Cuál es la forma más sencilla de obtener la correlación de dos vectores?

Los documentos indican que numpy.correlate no es lo que está buscando:

 numpy.correlate(a, v, mode='valid', old_behavior=False)[source] Cross-correlation of two 1-dimensional sequences. This function computes the correlation as generally defined in signal processing texts: z[k] = sum_n a[n] * conj(v[n+k]) with a and v sequences being zero-padded where necessary and conj being the conjugate. 

En cambio, como sugieren los otros comentarios, está buscando un coeficiente de correlación de Pearson . Para hacer esto con scipy intente:

 from scipy.stats.stats import pearsonr a = [1,4,6] b = [1,2,3] print pearsonr(a,b) 

Esto da

 (0.99339926779878274, 0.073186395040328034) 

También puedes usar numpy.corrcoef :

 import numpy print numpy.corrcoef(a,b) 

Esto da:

 [[ 1. 0.99339927] [ 0.99339927 1. ]]