Записали двумерный массив в файл .bin. Теперь я хочу прочитать этот массив и распечатать его обратно.
Вот как я сделал реализацию.
import numpy as np
mat = np.array([[18, 14, 20, 17],
[10, 16, 10, 12],
[15, 21, 13, 19]])
with open(r"D:\PythonProgram\FileHandling\Array_bin.bin", 'wb') as filer:
print(mat,"\n")
filer.truncate()
filer.write(mat)
with open(r"D:\PythonProgram\FileHandling\Array_bin.bin", 'rb') as handler:
handler.seek(0)
print(handler.read())
array_data = np.fromfile(r"D:\PythonProgram\FileHandling\Array_bin.bin",dtype = int)
print("\n",array_data)
Output:
[[18 14 20 17]
[10 16 10 12]
[15 21 13 19]]
b'\x12\x00\x00\x00\x0e\x00\x00\x00\x14\x00\x00\x00\x11\x00\x00\x00\n\x00\x00\x00\x10\x00\x00\x00\n\x00\x00\x00\x0c\x00\x00\x00\x0f\x00\x00\x00\x15\x00\x00\x00\r\x00\x00\x00\x13\x00\x00\x00'
[18 14 20 17 10 16 10 12 15 21 13 19]
Когда я использовал метод read *Метод 1008 *, я понял, почему вывод странный, поскольку данные хранятся в бинарном файле, но когда используется np.fromfile
, я фактически получил элементы массива, но на этот раз мой массив сгладился.
Итак, есть ли способ вернуть массив в том же измерении, когда он был записан, но без использования метода np.reshape ?