[PYTHON MATRIX-SIG] reduce methods

janko hauser jhauser@ifm.uni-kiel.de
Thu, 30 Jan 1997 14:11:15 +0100


Ja, das ist wirklich unklar von mir ausgedr"uckt. Ich meine das
Mittel, berechnet entlang einer Achse von dem Gesamtfeld entlang
dieser Achse abziehen. Das m"ochte ich entlang jeder beliebigen Achse
machen k"onnen. Und f"ur andere Achsen als m.shape[0] mu\3 ich ein
reshape machen...., dachte ich bisher, aber da gibt es ja noch
NewAxis. Egal was man benutzt, man mu\3 aber dann immer im Blick
haben, welche Achse man ersetzen m"ochte, damit die Berechnung
z.B. des Mittelwertes stimmt. Das klappt nur so sch"on, wenn man
Axis=0 verwendet. Auch das Teilen mit len() klappt nur bei der nullten
Achse.  Wenn die Funktionen aber die reduzierte Achse mit der L"ange
eins behalten, dann lassen sich solche Berechnungen ziemlich 'blind'
durchf"uhren. Allerdings habe ich noch nicht den Einflu\3 auf andere
Funktionen "uberpr"uft oder mir Gedanken um das Grunds"atzliche
gemacht. So verkleinert diff() die L"ange der angegeben Achse um eins,
da sieht das auch richtig aus. Also, ich bin mir nicht sicher, ob das
alles als Standard propagiert werden soll. Auf der anderen Seite, wenn
man schon add.reduce maskiert, dann kann man sich ja auch von dem
grunds"atzlichen von reduce entfernen. 

Nochmal zu dem Netcdfmodul. Ich wei\3 das 'rw' falsch ist, aber das
sollte nicht alles zum Absturz bringen. Das meinte ich damit. (Mu\3
wohl lernen mich klarer auszudr"ucken... :-)) Haben eigentlich viele
nach dem Modul gefragt? Ein Sache f"allt mir noch ein. Irgendwoher
wissen netcdf-programme welches die unlimitierte Dimension ist. Kann
man die Information noch mit einbauen? Oder habe ich wieder etwas
"ubersehen?

Ich w"are auch an der neuen Version interessiert :-)

Bis denn

__Janko


Konrad Hinsen writes:
 > > If we don't change the axis to 1 we can't 'easy' subtract the mean
 > > from a field.
 > 
 > I am not quite sure what you mean by "field" and "mean of a field".
 > If a rank-2 array a is supposed to represent a list of vectors,
 > then m=add.reduce(a)/len(a) will be its mean, and a-m will subtract
 > the mean vector from each vector in a.
 > 
 > Of course there may be other cases: if a is a matrix and you want to
 > subtract the mean of all its elements, you need a-add.reduce(ravel(a)).
 > Again, no explicit axis argument.
 > 
 > You do need to specify the axis if you want to subtract the mean of
 > all columns of a, which seems what you were after in your example.
 > 
 > Konrad.
 > -- 
 > -------------------------------------------------------------------------------
 > Konrad Hinsen                          | E-Mail: hinsen@ibs.ibs.fr
 > Laboratoire de Dynamique Moleculaire   | Tel.: +33-4.76.88.99.28
 > Institut de Biologie Structurale       | Fax:  +33-4.76.88.54.94
 > 41, av. des Martyrs                    | Deutsch/Esperanto/English/
 > 38027 Grenoble Cedex 1, France         | Nederlands/Francais
 > -------------------------------------------------------------------------------

_______________
MATRIX-SIG  - SIG on Matrix Math for Python

send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org
_______________