Seite 1 von 1
Gaussche Summenkurve aus Liste / Array
Verfasst: Mittwoch 29. März 2017, 09:24
von Natrix natrix
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!
Re: Gaussche Summenkurve aus Liste / Array
Verfasst: Mittwoch 29. März 2017, 09:57
von Sirius3
@Natrix natrix: was für Gedanken hast Du Dir denn dazu schon gemacht? Kennst Du for-Schleifen und if-Abfragen? Mehr Wissen ist nicht nötig, um die Aufgabe zu lösen.
Re: Gaussche Summenkurve aus Liste / Array
Verfasst: Mittwoch 29. März 2017, 14:24
von MagBen
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.
Re: Gaussche Summenkurve aus Liste / Array
Verfasst: Mittwoch 29. März 2017, 14:31
von BlackJack
@MagBen: Warum in einer Schleife? Wenn man eh schon Numpy verwendet, sollte man das dann auch gleich Numpy machen lassen: `cumsum()`.
Re: Gaussche Summenkurve aus Liste / Array
Verfasst: Mittwoch 29. März 2017, 16:06
von Natrix natrix
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:
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]
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...
Re: Gaussche Summenkurve aus Liste / Array
Verfasst: Mittwoch 29. März 2017, 16:47
von BlackJack
@Natrix natrix: Was gefällt Dir denn nicht an `histogram`? Und `cumsum` für den zweiten Teil?
Re: Gaussche Summenkurve aus Liste / Array
Verfasst: Mittwoch 29. März 2017, 17:38
von Natrix natrix
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