Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy保存文件比原始文件大_Python_Numpy - Fatal编程技术网

Python Numpy保存文件比原始文件大

Python Numpy保存文件比原始文件大,python,numpy,Python,Numpy,我正在提取一个大的CSV文件(200Mb),该文件是使用R和Python生成的(我就是使用Python的那个) 我对文件做了一些修改(规范化、缩放、删除垃圾列等),然后使用numpy的savetxt(数据分隔符为“”)再次保存它,以保留csv属性 事实是,新文件的大小几乎是原始文件的两倍(大约400Mb)。原始数据和新数据都只是浮点数组 如果有帮助的话,看起来新文件的值非常小,需要指数值,而原始文件没有指数值 你知道为什么会发生这种情况吗?你有没有研究过浮动在前后文本中的表示方式?您可能会有一行

我正在提取一个大的CSV文件(200Mb),该文件是使用R和Python生成的(我就是使用Python的那个)

我对文件做了一些修改(规范化、缩放、删除垃圾列等),然后使用numpy的savetxt(数据分隔符为“”)再次保存它,以保留csv属性

事实是,新文件的大小几乎是原始文件的两倍(大约400Mb)。原始数据和新数据都只是浮点数组

如果有帮助的话,看起来新文件的值非常小,需要指数值,而原始文件没有指数值


你知道为什么会发生这种情况吗?

你有没有研究过浮动在前后文本中的表示方式?您可能会有一行“1,2,3.”变成“1.000000e+0,2.000000e+0,3.000000e+0”或类似的内容,这两行都是有效的,并且都表示相同的数字

但是,更可能的情况是,如果原始文件中包含的浮点值具有相对较少的有效数字(例如“1.1、2.2、3.3”),则在执行规范化和缩放后,您会“创建”更多数字,这些数字是表示数学结果所需的,但与精度的实际提高不符(例如,在最后一个示例中,将值之和标准化为1.0会得到“0.1666666,0.3333333,0.5”)

我想简单的答案是,没有保证(也没有要求)以文本形式表示的浮点数会占用任何特定的存储空间,或者小于每个浮点数可能占用的最大空间;即使数据保持不变,它也会有很大的变化,如果数据发生变化,它肯定会发生变化