Ich arbeite mit einem sehr großen Datensatz (ca. 75 Millionen Einträge) und versuche die Laufzeit meines Codes deutlich zu verkürzen (mit einer Schleife wird es jetzt ein paar Tage dauern) und die Speichernutzung extrem niedrig halten.Alle Indizes jedes einzelnen Elements in einer Liste python
Ich habe zwei numpy Arrays (clients
und units
) der gleichen Länge. Mein Ziel ist es, eine Liste von jedem Index zu erhalten, dass ein Wert in meiner ersten Liste auftritt (clients
) und dann eine Summe der Einträge in meiner zweiten Liste bei jedem dieser Indizes zu finden.
Dies ist, was ich habe versucht (np
ist die zuvor importierte numpy Bibliothek)
# create a list of each value that appears in clients
unq = np.unique(clients)
arr = np.zeros(len(unq))
tmp = np.arange(len(clients))
# for each unique value i in clients
for i in range(len(unq)) :
#create a list inds of all the indices that i occurs in clients
inds = tmp[clients==unq[i]]
# add the sum of all the elements in units at the indices inds to a list
arr[i] = sum(units[inds])
Kennt jemand eine Methode, die mir erlauben, diese Summen zu finden, ohne in unq
durch jedes Element Looping?
Würden Pandas eine Option für Sie sein? – Cleb
Pandas sind immer eine Option. – m02ph3u5
Ich benutze Pandas, um die Arrays hochzuladen und herunterzuladen, gibt es eine andere Möglichkeit, sie zu benutzen? – Lynnsey