2016-04-17 9 views
1

Scipys ttest_1samp gibt ein Tupel mit der t-Statistik und dem zweiseitigen p-Wert zurück.Wie entpacken Sie die Ergebnisse von scipy ttest_1samp?

Beispiel:

ttest_1samp([0,1,2], 0) = (array(1.7320508075688774), 0.22540333075851657) 

Aber ich bin nur daran interessiert, den Schwimmer des t-Tests (die t-Statistik), die ich nur mit [0].ravel()[0]

bekommen konnte

Beispiel:

ttest_1samp([0,1,2], 0)[0].ravel()[0] = 1.732 

aber ich bin mir ziemlich sicher, es muss eine pythonic sein Weg, dies zu tun. Was ist der beste Weg, um den Float von diesem Ausgang zu erhalten?

+0

Haben Sie versucht, nur 'ttest_1samp ([0,1,2], 0) [0]'? – BrenBarn

+0

@BrenBarn die Ausgabe von 'array (1.732)' –

+0

Welche Version von numpy/scipy verwenden Sie? Für mich gibt es nur '1.7320508075688774' zurück. In jedem Fall denke ich, dass "array (1.732)" nur ein nulldimensionales numpy Array ist, das Sie in den meisten Kontexten verwenden könnten, als wäre es eine einfache Zahl. – BrenBarn

Antwort

1

Von the source code, scipy.stats.ttest_1samp kehrt nicht mehr als ein namedtupleTtest_1sampResult mit der Statistik und p-Wert. Aus diesem Grund müssen Sie nicht .ravel verwenden - Sie einfach

scipy.stats.ttest_1samp([0,1,2], 0)[0] 

die Statistik zugreifen können.


Hinweis: Von einem weiteren Blick auf den Quellcode, ist es klar, dass diese namedtuple nur in Release 0.14.0 zurückgegeben begann. In Version 0.13.0 und früher scheint es, dass a zero dim array is returned (Quellcode), die für alle Absichten und Zwecke wie eine einfache Zahl wie von BrenBarn erwähnt handeln kann.