在我的程序中,我正在使用各种不同大小的 numpy 数组。我需要将它们存储到 XML 文件中以备后用。我没有将它们写入二进制文件,因此我将所有数据放在一个位置(XML 文件),而不是分散在 200 个文件中。
所以我尝试使用 numpy 的 array_str() 方法将数组转换为字符串。生成的 XML 如下所示:
-<Test date="2013-07-10-17:19">
<Neurons>5</Neurons>
<Errors>[7.7642140551985428e-06, 7.7639131137987232e-06]</Errors>
<Iterations>5000</Iterations>
<Weights1>[[ 0.99845902 -0.70780512 0.26981375 -0.6077122 0.09639695] [ 0.61856711 -0.74684913 0.20099992 0.99725171 -0.41826754] [ 0.79964397 0.56620812 -0.64055346 -0.50572793 -0.50100635]]</Weights1>
<Weights2>[[-0.1851452 -0.22036027] [ 0.19293429 -0.1374252 ] [-0.27638478 -0.38660974] [ 0.30441414 -0.01531598] [-0.02478953 0.01823584]]</Weights2>
</Test>
权重是我要存储的值。现在的问题是 numpy 的 fromstring() 方法显然无法重新加载这些......我得到“ValueError:字符串大小必须是元素大小的倍数”
我用“np.array_str(w1)”编写它们并尝试用“np.fromstring(w_str1)”读取它们。显然,即使它有效,结果也只是一个一维数组,所以我必须手动恢复形状。呃,这已经很痛苦了,因为我也必须以某种方式存储它。
正确执行此操作的最佳方法是什么?最好也可以保存我的数组的形状和数据类型,而无需对每一件小事进行手动内务处理。