Berechne den Mittelwert mit numpy ndarray

8

Die Textdatei sieht folgendermaßen aus:

%Vor%

So berechnen Sie den Mittelwert von Gewicht und Höhe für David und markieren Sie wie folgt:

%Vor%

mein unvollständiger Code ist:

%Vor%

Dann wie np.mean ??

anwenden     
2964502 12.11.2013, 16:27
quelle

4 Antworten

2

Sie können Ihre Daten direkt in einem Nummernfeld lesen mit:

%Vor%

dann können Sie geeignete Indizes mit np.where finden:

%Vor%

und führen Sie den Mittelwert auf diesen Indizes:

%Vor%     
Nicolas Barbey 12.11.2013, 16:58
quelle
5

Die Funktion mean dient zum Berechnen des Durchschnitts eines Arrays von Zahlen. Sie müssen einen Weg finden, um die Werte von c3 auszuwählen, indem Sie eine Bedingung auf c2 anwenden.

Was wahrscheinlich besser zu Ihren Bedürfnissen passt, wäre die Aufteilung der Daten in eine hierarchische Struktur. Ich bevorzuge die Verwendung von Wörterbüchern. Etwas wie

%Vor%

Jetzt wird data wie

aussehen %Vor%

Was Sie dann tun können, ist

%Vor%

Hier verwende ich immer noch np.mean , aber ich rufe es nur in einer normalen Python-Liste auf.

    
bheklilr 12.11.2013 16:48
quelle
4

Ich werde dieses Community-Wiki erstellen, weil es eher "Hier ist, wie ich denke, dass du es stattdessen tun solltest" als "Hier ist die Antwort auf die Frage, die du gestellt hast". Für so etwas würde ich wahrscheinlich pandas anstelle von numpy verwenden, da die Gruppierungswerkzeuge viel besser sind. Es wird auch nützlich sein, mit numpy -basierten Ansätzen zu vergleichen.

%Vor%

.. und, äh, das ist es.

Lies zuerst die Daten in DataFrame ein und lasse entweder whitespace oder _ separate Spalten:

%Vor%

Dann gruppieren Sie nach name und property , nehmen Sie die Spalte value und berechnen Sie den Mittelwert:

%Vor%

.. okay, der sep="[ _]" Trick ist ein wenig zu süß für echten Code, obwohl er hier gut genug funktioniert. In der Praxis verwende ich ein Whitespace-Trennzeichen, lese in der zweiten Spalte property_year und mache dann

%Vor%

um Unterstriche in anderen Spalten zuzulassen.

    
DSM 12.11.2013 17:04
quelle
1

Wenn Ihre Daten immer im angegebenen Format vorliegen. Dann könnten Sie dies mit Array-Slicing tun:

%Vor%

Ergebnisse in:

%Vor%     
dabillox 12.11.2013 16:54
quelle