Когда я загружаю массив с помощью numpy.loadtxt, кажется взять слишком много памяти. Например.
a = numpy.zeros(int(1e6))
вызывает увеличение памяти примерно на 8 МБ (при использовании htop или всего 8 байт * 1 миллион \ приблизительно 8 МБ). С другой стороны, если я сохраню, а затем загружу этот массив
numpy.savetxt('a.csv', a)
b = numpy.loadtxt('a.csv')
, мое использование памяти увеличится примерно на 100 МБ! Я снова наблюдал это с помощью htop. Это наблюдалось в оболочке iPython, а также при пошаговом выполнении кода с использованием Pdb ++.
Есть идеи, что здесь происходит?
Прочитав ответ Джозза, я понял, что, если я заранее знаю размер массива, есть гораздо более эффективный с точки зрения памяти способ сделать что-то, если сказать, что 'a' было mxn массив:
b = numpy.zeros((m,n))
with open('a.csv', 'r') as f:
reader = csv.reader(f)
for i, row in enumerate(reader):
b[i,:] = numpy.array(row)