5 Stimmen

Kumulierte Summe der Variablen bis zu einem bestimmten Perzentil

Ich möchte alle Werte in einem Array bis zu einem bestimmten Perzentil aufsummieren. Zum Beispiel:

import numpy as np
a = [15, 40, 124, 282, 914, 308]
print np.percentile(a,90)

Das 90. Perzentil beträgt ~611 und die kumulative Summe bis dahin beträgt 461

Gibt es eine Funktion in Python, die das kann?

5voto

JoshAdel Punkte 62773
import numpy as np
a = np.array([15, 40, 124, 282, 914, 308])
b = np.cumsum(a)
p90 = np.percentile(a, 90)
print b[b < p90][-1] #461

4voto

JaminSore Punkte 3670

Keine, von denen ich weiß, aber du kannst das tun

import numpy as np
from itertools import takewhile

a = [15, 40, 124, 282, 914, 308]
p90 = np.percentile(a,90)
print sum(takewhile(lambda x : x < p90,  a))

Ausgabe:

461

4voto

CT Zhu Punkte 48823
A=np.array(a)
A[:(A

`

@JoshAdel's

%%timeit
    ...: b = np.cumsum(a)
    ...: p90 = np.percentile(a, 90)
    ...: b[b < p90][-1]
    ...: 
1000 loops, best of 3: 217 µs per loop

This:

%timeit A[:(A

`

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X