Я работаю с очень большим набором данных (около 75 миллионов записей), и я пытаюсь сократить время, в течение которого мой код занимает значительный запас (с петлей прямо сейчас это займет пару дней) и сохранить использование памяти чрезвычайно низким.Все индексы каждого уникального элемента в списке python
У меня есть два массива numpy (clients
и units
) такой же длины. Моя цель - получить список каждого индекса, который имеет значение в моем первом списке (clients
), а затем найти сумму записей в моем втором списке по каждому из этих индексов.
Это то, что я попытался (np
это ранее импортированные NumPy библиотека)
# 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])
Кто-нибудь знает способ, который позволит мне найти эти суммы без пробегаем по каждому элементу в unq
?
Может ли панда быть вариантом для вас? – Cleb
Панды - это всегда вариант. – m02ph3u5
Я использую pandas для загрузки и загрузки массивов, есть ли другой способ, которым я мог бы его использовать? – Lynnsey