将ndarray写为二进制并以正确的形状读取

问题描述 投票:0回答:1

我有一个N6f 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那样在二进制文件中以某种方式编码此信息吗?

python numpy multidimensional-array binaryfiles
1个回答
3
投票

为什么不使用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 ]]

© www.soinside.com 2019 - 2024. All rights reserved.