我有一个N
由6
由f
numpy数组。我希望能够将其写为二进制文件,然后通过另一个python脚本将其读取到相同维度的数组中。
为了测试这个,我做了以下(based on this question):
import numpy as np
farray=np.array([[3.14, 2.7, 0.0, -1.0, 1.1],[3.14, 2.7, 0.0, -1.0, 1.1]])
testf = open('test','wb')
farray.tofile(testf)
testf.close()
arraytest = np.fromfile('test')
在这一点上arraytest.shape
是(10,)
。我怎样才能确保它是(2,5)
而不必提前知道2和5来重塑阵列?我可以像在常规文本文件中使用\n
那样在二进制文件中以某种方式编码此信息吗?
为什么不使用np.save&np.load?
import numpy as np
farray=np.array([[3.14, 2.7, 0.0, -1.0, 1.1],[3.14, 2.7, 0.0, -1.0, 1.1]])
np.save('nums.npy', farray)
loaded_farray = np.load('nums.npy')
print(loaded_farray)
[[ 3.14 2.7 0. -1. 1.1 ] [ 3.14 2.7 0. -1. 1.1 ]]