Hallo allerseits,
habe eine Frage, die für die Profis sicher eine Kleinigkeit ist, die ich aber gerade nicht lösen kann:
Ich habe eine Liste von Zahlen (int/float), insg. z.B. 500 Werte von 0 bis 100. Für diese Liste möchte ich eine Gaussche Summenkurve darstellen, die zeigt wie viele Werte zwishcen 0 und 1, zwischen 0 und 2, zwischen 0 und 3... liegen.
So in etwa wie ein Histogramm, bei dem die Werte von links nach rechts aufaddiert werden.
Vielen Dank für Vorschläge!
Gaussche Summenkurve aus Liste / Array
Ich würde da zunächst das Histogram mit numpy.histogram berechnen
und danach in einer Schleife über das Histogramm in ein zweites Array aufsummieren.
und danach in einer Schleife über das Histogramm in ein zweites Array aufsummieren.
@MagBen: Warum in einer Schleife? Wenn man eh schon Numpy verwendet, sollte man das dann auch gleich Numpy machen lassen: `cumsum()`.
- Natrix natrix
- User
- Beiträge: 16
- Registriert: Mittwoch 29. März 2017, 09:16
Hallo,
danke für Eure Antworten. Da hätte ich wohl ein bisschen spezifischer werden sollen.
Klar kann man das mit der for-Schleife machen, sieht dann so aus - für 500 Zahlen machbar, für längere Zahlenreihen laaaangsam:
Die Vorgehensweise erscheint mit aber recht umständlich und ich hatte auf eine Standard-Funktion gehofft. An cumsum() hatte ich auch gedacht, aber die Funktion addiert die Werte auf und nicht die Anzahl der Werte.
Danke und Grüße
P.S. die Einrückung geht verloren...
danke für Eure Antworten. Da hätte ich wohl ein bisschen spezifischer werden sollen.
Klar kann man das mit der for-Schleife machen, sieht dann so aus - für 500 Zahlen machbar, für längere Zahlenreihen laaaangsam:
Code: Alles auswählen
# x1 ist hier als Beispiel ein np array mit 500 ints zwischen 1 und 100
bins = 100 # Anzahl der bins entsprechend den möglichen Zahlenwerten
x2 = np.zeros(bins+1)
for i in range(0,len(x1)):
y= x1[i]
x2[y]+=1
for i in range(0,len(x2)):
if i > 0:
x2[i] = x2[i] + x2[i-1]
Danke und Grüße
P.S. die Einrückung geht verloren...
Zuletzt geändert von Anonymous am Mittwoch 29. März 2017, 16:45, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
@Natrix natrix: Was gefällt Dir denn nicht an `histogram`? Und `cumsum` für den zweiten Teil?
- Natrix natrix
- User
- Beiträge: 16
- Registriert: Mittwoch 29. März 2017, 09:16
Bei näherem Nachdenken... gefällt mir schon ,
bin erst noch über das Tupel vom Histogramm gestolpert...
x2 = np.cumsum(np.histogram(x1)[0])
War wohl nen Brett vorm Kopf, Danke fürs zersägen
bin erst noch über das Tupel vom Histogramm gestolpert...
x2 = np.cumsum(np.histogram(x1)[0])
War wohl nen Brett vorm Kopf, Danke fürs zersägen