[pymvpa] zscore clarification and question
Yaroslav Halchenko
debian at onerussian.com
Wed Dec 1 15:25:26 UTC 2010
oh, but may be I should have made it clear: after all, zscoring per
volume is very easy to implement in pure Python:
var = ds.samples.std(axis=1)
ds.samples[var!=0] = (ds.samples[var!=0] - ds.samples[var!=0].mean(axis=1)[:, None])/var[var!=0][:, None]
little explanation:
var!=0 -- to avoid division by 0s so we do not get NaNs if some volumes
manage to get no variance (implausible unless something else is screwed up)
[:, None] -- to add a degenerate second dimension (for features)
so broadcasting works across features
On Wed, 01 Dec 2010, Yaroslav Halchenko wrote:
> thank you Jo for kicking my butt for stopping checking my words in the
> code ("Talk is cheap show me your code" L. Torvalds)
> you are perfectly correct and I guess we do not have zscoring per
> volume atm... sorry for causing you to explain it in detail for us.
> Theoretically it should be just "axis" argument to make things clear and
> explicit (will be done in 0.6 I guess):
> 0 - per feature (as now pervoxel=True)
> 1 - per volume
> None - global (as now pervoxel=False)
> added
> https://github.com/PyMVPA/PyMVPA/issues/#issue/35
> so we do not forget ;)
--
=------------------------------------------------------------------=
Keep in touch www.onerussian.com
Yaroslav Halchenko www.ohloh.net/accounts/yarikoptic
More information about the Pkg-ExpPsy-PyMVPA
mailing list