2

在 Windows XP 上工作,我有一个 numpy ndarray 的 shape (300, 224, 256),所以包含大约 1700 万个项目。它包含整数值。当我尝试使用numpy.save一切正常保存这个数组时。但是,我需要处理数据并在此流程中将其转换为 float32。如果这样做,我将无法再保存数组:

>>>myarray.dtype
dtype('int16')

>>>np.save('myfile.npy', myarray)

>>>np.save('myfile.npy', myarray.astype(np.float32))

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-21-1c817b31fd22> in <module>()
----> 1 np.save('myfile', myarray.astype(p.float32))

C:\Programme\Python27\lib\site-packages\numpy\lib\npyio.pyc in save(file, arr)
    409     try:
    410         arr = np.asanyarray(arr)
--> 411         format.write_array(fid, arr)
    412     finally:
    413         if own_fid:

C:\Programme\Python27\lib\site-packages\numpy\lib\format.pyc in write_array(fp, array, version)
    407     else:
    408         if isfileobj(fp):
--> 409             array.tofile(fp)
    410         else:
    411             # XXX: We could probably chunk this using something like

ValueError: 17203200 requested and 1004 written

我的第一个猜测是,我试图保存的网络驱动器空间不足。但情况似乎并非如此。谁能指出我为什么会发生这种情况,为什么只在使用 float32 时,以及我如何能够解决它?

4

2 回答 2

3

我用谷歌搜索一下,似乎是您的硬盘空间不足或出现溢出错误。您是否尝试将其保存到本地硬盘?您是否尝试过具有 size 的数组(300, 224, 255)?尝试几个调整,看看你是否得到不同的结果。

于 2013-10-08T13:30:08.253 回答
1

我知道这个问题有点老了,但似乎每个人都忽略了一些东西。即使您的命令是“np.save('myfile.npy', myarray.astype(np.float32))”,错误消息也会将该命令报告为“np.save('myfile', myarray.astype(p.float32 ))”

由于 p.float32 不是 dtype,这是否可能只是由拼写错误引起的?

于 2014-09-23T23:38:05.850 回答