【python进阶】大量浮点数数创建以及读写文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36372879/article/details/86641428

虽然列表灵活又简单,但是面对各种需求时,比如需要存放1000万个浮点数的话,数组(array)的效率要高的多。因为数组背后存的并不是float对象,而是数字的机器翻译,也就是字节表述。

例如下面这个代码:

from array import array
from random import random
floats = array('d', (random() for i in range(10**7)))
print(floats[0], floats[-1])
fp = open('floats.bin', 'wb')
floats.tofile(fp)
fp.close()
floats2 = array('d')
fp = open('floats.bin', 'rb')
floats2.fromfile(fp, 10**7)
fp.close()
print(floats2[0], floats2[-1])

array的数据类型:
在这里插入图片描述
运行之后结果如图:
在这里插入图片描述
运行之后可以看到,速度非常快。用array.fromfile从一个二进制文件里读出1000万个双精度浮点数只需要0.1秒,这比从文本文件读取速度快60倍。array.tofile写入到二进制文件,也比文本文件快7倍。

猜你喜欢

转载自blog.csdn.net/weixin_36372879/article/details/86641428