2016-07-13 29 views
0

Ich habe eine Liste mit Patienten. Jeder Patient hat eine (n x m) Matrix mit Werten.StandardScaler auf Liste mit Matrix als Listenelement

enter image description here

Jetzt möchte ich die Daten über alle Patienten mit einem mittleren/std normalisieren die StandardScaler verwenden.

Das Problem ist, dass es anscheinend nicht mehrere Listeneinträge enthalten kann.

Gibt es eine Möglichkeit, diesen Befehl zu verwenden oder muss ich es manuell mit einer for-Schleife tun?

Prost

P. S .: ich

ValueError: setting an array element with a sequence. 

Dies ist aufgrund der Matrixgrößen während StandardScaler angeblich nur mit Arrays arbeiten wird.

+1

Können Sie ein minimales Beispiel geben? – Ohumeronen

+0

Wenn die Funktion mehrere Listen nicht als Parameter unterstützt, können Sie Listen-Comprehensions verwenden. Was ist dein Funktionsaufruf? – Ohumeronen

+0

Hallo, danke für die Antwort. Ich fügte ein Bild der Matrix für ein besseres Verständnis hinzu. Ja, eine Idee war es, alle Werte zusammenzuführen, dann den StandardScaler durchzuführen und die Werte erneut durch die Länge der ursprünglichen Liste zu trennen. Aber ich hoffte auf eine bessere Lösung, indem ich den StandardScaler für mehrere Listen nützlich machte. Der Funktionsaufruf lautet: StandardScaler(). Fit (PatientData); StandardScaler.transform (PatientData) –

Antwort

1

Angenommen, Sie eine Reihe von Patientendaten Matrizen wie dieses:

my_patient_data_X 

Dann können Sie dies tun:

my_patient_data_X = [StandardScaler().fit_transform(X) for X in my_patient_data_X] 

Würde dies erreichen, was Sie wollen?

+1

wow, das war einfach. Danke vielmals. Ich werde mehr Zeit mit Python brauchen, damit das für mich selbstverständlich ist. Einen schönen Tag noch. –

+0

Cool, froh, dass ich helfen konnte. – Ohumeronen