Hallo!
Ich suche eine einfache Lösung für folgendes Problem:
Ich habe zwei Listen, x und y, mit dezimalen Wertepaaren (etwa 100.000). x = [1.45, 3.95, 12.10, 2.43, ...], y = [0.02, 0.31, 0.07, 0.12, ...].
Nun möchte ich diese beiden Listen aufspalten anhand der Integer-Werte von x, ich möchte quasi ein Binning haben in ganzzahligen Schritten, wobei die Zuordnung zwischen x und y erhalten bleibt. Sodass ich am Ende weiß, diese x-Werte liegen zwischen 0-1 und haben die zugehörigen y-Werte [...] und jene x-Werte liegen zwischen 1-2 und haben die zugehörigen y-Werte [...] usw.
Hat jemand eine Idee, wie sich das elegant lösen lässt?
Viele Grüße
Listen aufspalten/binnen
Ich habe mir gerade dazu folgenden Ansatz überlegt. Ist der gut bzw. geht's besser/eleganter? Das mit den Tupeln gefällt mir am Ende noch nicht, das macht den Zugriff auf die komplette Liste eines Bins im Anschluss umständlich...
Code: Alles auswählen
bins = np.arange(int(min(x)), int(max(x)), 1)
order = np.digitize(x, bins)
for i in range(len(bins)):
lists.append([]) # Pro bin eine Liste für alle zugehörigen Wertepaare erstellen
for i in range(len(order)):
lists[order[i-1].append((x[i], y[i])) # Einsortieren der Wertepaare in die jeweilige Liste