Я предполагаю, что вы не только импортируете матрицы, но и экспортируете их в файлы в первую очередь.
Если это правда, существует несколько простых вариантов с различными компромиссами.
np.save
сохраняет массив в двоичном формате, который использоваться только по NumPy. Но он очень быстрый и генерирует достаточно мелкие файлы.
np.save('matrix.npy', Q)
Q = np.load('matrix.npy')
np.savetxt
сохраняет массив в текстовый файл, используя диалект CSV (с пробельных разделителей по умолчанию). Он медленнее и генерирует большие файлы, но если вы хотите читать или редактировать файлы (или отправлять их через ASCII-канал, например, электронную почту без вложений), это лучший вариант.
np.savetxt('matrix.txt', Q)
Q = np.loadtxt('matrix.txt')
np.savetxt
может также сохранить массив в сжатом текстовом файле. Это дает вам небольшие файлы, но они медленнее сохранять и загружать. Они не являются непосредственно читаемыми человеком, но очень легко un-gzip файл, а затем у вас есть текстовый файл, который вы читаете и редактируете. может. Поэтому иногда это стоит того.
np.savetxt('matrix.txt.gz', Q)
Q = np.loadtxt('matrix.txt.gz')
Наконец, вы можете просто использовать сохранение стандартный Python и погрузочные механизмы, такие как pickle
:
with open('matrix.pickle', 'wb') as f:
pickle.dump(Q, f)
with open('matrix.pickle', 'rb') as f:
Q = pickle.load(f)
Это действительно полезно только тогда, когда вам нужно хранить Numpy массивы вместе с не-NumPy объекты.
Если вы должны сохранить Множественные матриц, вместо сохранения один на один файл, вы можете захотеть взглянуть на savez
и savez_compressed
. Или, если вам нужны несколько объектов, только некоторые из них - NumPy, pickle
- лучший вариант.
Это зависит. Можете ли вы определить формат файла, или это уже существующие данные, с которыми вам приходится иметь дело? Если вы можете определить формат, нужно ли его читать или редактировать более важно, чем быть маленьким и быстрым? – abarnert
Спасибо за ваш ответ. Это уже существующие данные, а только некоторые матрицы. Например, сохраните одну матрицу в файле, а затем в программах пусть Q будет матрицей. Если это может быть понятно для человека, это лучше. Я рассматриваю возможность использования формата .txt. Это очень сложно реализовать? – ilovecp3
«Предварительно существующие данные», я имел в виду «вам нужно читать файлы, которые кто-то дал вам»? Если нет, то это очень легко реализовать. Если так ... это зависит от формата файла, который вам давался, но обычно это не сложно. – abarnert