Предпосылка ошибочна: использование памяти временно увеличивается при загрузке файла и может снова увеличиться во второй раз, и, возможно, даже в третий, но в итоге сборщик мусора запустится и память будет освобождена.
Если вы не хотите ждать недетерминированного времени для восстановления памяти, вы можете явно заставить сборщик мусора запускаться всякий раз, когда необходимо освободить память:
import gc
gc.collect()
Вы также можете явно удалить массив после загрузки, если вам больше не нужны данные:
del y
Но если вы не выполните ни одного из этих действий и просто загрузите одни и те же данные снова и снова, использование памяти не будет расти вечно - в какой-то момент сборщик мусора запустится, а использование памяти сократится. Это происходит автоматически, и вам обычно не нужно об этом беспокоиться.