#python #numpy #memory-management
#python #numpy #управление памятью
Вопрос:
У меня есть два NumPy-массива, A и B.
A имеет форму (1000000, 512), а B имеет форму (1000000, 4) Я пытаюсь объединить их, чтобы получить массив формы (1000000, 516).
Моя проблема в том np.concatenate([A, B], axis=1)
, что по какой-то причине занимает слишком много памяти. Проверяя использование моей памяти, A и B занимают примерно 5 ГБ (вместе), но когда я запускаю конкатенацию, использование моей оперативной памяти увеличивается примерно на 16 ГБ.
Почему это происходит? Есть ли более эффективный способ выполнения этой операции для больших массивов?
Я пытался выполнять конкатенацию пакетами, но это не очень помогает, и кажется, что память не освобождается между итерациями.
Комментарии:
1. Можете ли вы проверить dtype обоих массивов?
2. Оба массива имеют dtype ‘0’
3. @mikksu Я изменил тип на float, и это резко сократило потребление памяти и практически решило мою проблему 🙂 Спасибо, это заняло у меня так много времени.