Возможно, вам не хватает памяти, потому что как только вы вызываете функцию с этим массивом, внутри функции создается копия, которая удваивает вашу память. Поэтому не создавайте лишних массивов.
Вы можете сохранить глобальную копию массива. Просто примените операции к глобальному массиву без создания дополнительной копии.
import gc
global processedArray # before all your assignment starts
внутри my_process ()
def my_process():
global processedArray
# do all operations on processedArray
global processedArray
processedArray = np.pad(dataArray, 25, mode='constant', constant_values=0) # pad
my_process()
del dataArray() # delete not needed arrays to make more space
gc.collect()
global processedArray
processedArray = processedArray[25:-25, 25:-25, 25:-25, :] # unpad
Но, тем не менее, вам не хватит памяти, если ваш my_process вызывает больше библиотечных функций, которые копируют обработанный массив. Попробуйте применить все операции к глобальному массиву, не создавая никаких копий.