Berechnung der Korrelationskoeffizienten zwischen den zwei multi-dimensional arrays

Ich habe zwei arrays, die die Formen N X T und M X T. Ich möchte die Berechnung der Korrelationskoeffizienten über T zwischen jedem möglichen paar Zeilen n und m (aus N und M, beziehungsweise).

Was ist die Schnellste, die meisten pythonic Weg, dies zu tun? (Schleife über N und M scheint mir zu sein, die weder schnell noch pythonic.) Ich erwarte noch die Antwort zu beinhalten numpy - und/oder scipy. Jetzt meine arrays sind numpy arrays, aber ich bin offen für die Konvertierung in einen anderen Typ.

Erwarte ich, dass meine Ausgabe ein array mit der Form N X M.

N. B. Wenn ich sage "Korrelationskoeffizient" meine ich die Pearson-Produkt-moment-Korrelationskoeffizient.

Hier sind einige Dinge zu beachten:

  • Die numpy Funktion correlate erfordert Eingabe-arrays zu eindimensional.
  • Die numpy Funktion corrcoef akzeptiert zwei-dimensionale arrays, aber Sie müssen die gleiche Form haben.
  • Die scipy.stats Funktion pearsonr erfordert Eingabe-arrays zu eindimensional.
So sind Sie auf der Suche nach "same", ''full" oder den Standard, mit np.correlate? Haben Sie schreiben die verrückte version von der Lösung?
ich bin auf der Suche nach 'valid'.
ja, die durchgeknallten version ist trivial: for n in range(N): . . . for m in range(M): . . . correlate(arr_one[n, :], arr_two[m, :]) . . .

InformationsquelleAutor dbliss | 2015-05-09

Schreibe einen Kommentar