虽然列表灵活又简单,但是面对各种需求时,比如需要存放1000万个浮点数的话,数组(array)的效率要高的多。因为数组背后存的并不是float对象,而是数字的机器翻译,也就是字节表述。
例如下面这个代码:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13from 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倍。
最后
以上就是壮观溪流最近收集整理的关于【python进阶】大量浮点数数创建以及读写文件的全部内容,更多相关【python进阶】大量浮点数数创建以及读写文件内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复