Les coefficients de corrélation et les valeurs de p pour toutes les paires de lignes d'une matrice

J'ai une matrice data avec m lignes et n colonnes. J'ai utilisé pour calculer les coefficients de corrélation entre toutes les paires de lignes à l'aide de np.corrcoef:

import numpy as np
data = np.array([[0, 1, -1], [0, -1, 1]])
np.corrcoef(data)

Maintenant, je voudrais aussi avoir un regard sur les p-valeurs de ces coefficients. np.corrcoef ne fournit pas ces; scipy.les stats.pearsonr. Cependant, scipy.stats.pearsonr ne pas accepter une matrice sur entrée.

Est-il un moyen rapide comment calculer le coefficient et la p-valeur pour toutes les paires de lignes (en arrivant par exemple à deux m par m matrices, l'une avec des coefficients de corrélation, l'autre correspondant aux valeurs de p) sans avoir à sélectionner manuellement toutes les paires?

Est-il une raison de ne pas simplement itérer sur la ligne de paires? Il est un peu maladroit, mais le code n'est pas très long, et très probablement, il ne va pas être un problème de performance, comme la plupart du temps est de toute façon passé le calcul de la pearsons. (I. e. voulez-vous dire "rapide" comme dans les temps de programmation ou "rapide", comme dans la performance.) Je vous suggère de prendre le trivial de l'itinéraire et du profil de la performance réelle.

OriginalL'auteur John Manak | 2014-06-26