Если есть память для окончательного результата, но np.array
внутреннее устройство использует слишком много памяти, вы можете обойти этот процесс обработки списка в блоках. Например:
In [236]: res = np.zeros((10,3,4),int)
In [237]: alist = np.random.randint(0,10,(10,3,4)).tolist()
In [238]: for i,row in enumerate(alist):
...: res[i] = row
In [240]: np.allclose(res, np.array(alist))
Out[240]: True
Для небольших массивов эта итерация будет медленнее, но для больших массивов проблемы с управлением памятью могут перевесить затраты на итерацию.