Обработка очень больших массивов Numpy - PullRequest
0 голосов
/ 10 марта 2019

Я хочу создать ядро ​​Numpy с размерами 25000 * 25000.Я хочу знать, как наиболее эффективно обрабатывать такие большие матрицы с точки зрения сохранения их на диске и загрузки.Я попытался сбросить его с помощью Pickle, но он выдал ошибку, сказав, что он не может сериализовать объекты размером более 4 Gib.

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Почему бы не попытаться сохранить массив в виде файла вместо использования pickle

np.savetxt("filename",array)

Затем его можно прочитать как

np.genfromtxt ("filename")

1 голос
/ 10 марта 2019

вы можете попытаться сохранить его в файле h5 с помощью pandas.HDFStore ()

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(25000,25000).astype('float16'))
memory_use = round(df.memory_usage(deep=True).sum()/1024*3,2)
print('use{}G'.format(memory_use))
store = pd.HDFStore('test.h5', 'w)
store['data'] = df
store.close()
...