gpt4 book ai didi

python - numpy 保存/加载损坏数组

转载 作者:太空狗 更新时间:2023-10-29 21:11:20 26 4
gpt4 key购买 nike

我正在尝试保存一个大的 numpy 数组并重新加载它。使用 numpy.savenumpy.load,数组值被损坏/更改。保存前和加载后数组的形状和数据类型相同,但加载后数组的绝大部分值都归零。数组是 (22915,22915),值为 float64,将 3.94 gb 作为 .npy 文件,数据条目平均约为 .1(不是可以合理地转换为零的微小 float )。我正在使用 numpy 1.5.1。

任何关于为什么会发生这种腐败的帮助将不胜感激,因为我不知所措。下面是一些代码,提供上述声明的证据。

In [7]: m
Out[7]:
array([[ 0. , 0.02023, 0.00703, ..., 0.02362, 0.02939, 0.03656],
[ 0.02023, 0. , 0.0135 , ..., 0.04357, 0.04934, 0.05651],
[ 0.00703, 0.0135 , 0. , ..., 0.03037, 0.03614, 0.04331],
...,
[ 0.02362, 0.04357, 0.03037, ..., 0. , 0.01797, 0.02514],
[ 0.02939, 0.04934, 0.03614, ..., 0.01797, 0. , 0.01919],
[ 0.03656, 0.05651, 0.04331, ..., 0.02514, 0.01919, 0. ]])
In [8]: m.shape
Out[8]: (22195, 22195)

In [12]: save('/Users/will/Desktop/m.npy',m)

In [14]: lm = load('/Users/will/Desktop/m.npy')

In [15]: lm
Out[15]:
array([[ 0. , 0.02023, 0.00703, ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
...,
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ]])
In [17]: type(lm[0][0])
Out[17]: numpy.float64

In [18]: type(m[0][0])
Out[18]: numpy.float64

In [19]: lm.shape
Out[19]: (22195, 22195)

最佳答案

这是一个已知的 issue (请注意,该链接针对 numpy 1.4)。如果你真的不能升级,我的建议是尝试以不同的方式保存(savez,savetxt)。如果 getbuffer 可用,您可以尝试直接写入字节。如果所有其他方法都失败了(并且您无法升级),您可以非常轻松地编写自己的保存函数。

关于python - numpy 保存/加载损坏数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12713486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com