有没有办法获取 python array.array() 的视图?

2024-02-05

我正在生成许多较大的“随机”文件(~500MB),其中内容是重复调用的输出random.randint(...)。我想预先分配一个大缓冲区,将长整型写入该缓冲区,并定期将该缓冲区刷新到磁盘。我目前正在使用array.array()但我看不到在该缓冲区中创建视图的方法。我需要这样做,以便我可以将带有有效数据的缓冲区部分送入hashlib.update(...)并将缓冲区的有效部分写入文件。我可以使用切片运算符,但 AFAICT 创建缓冲区的副本,这不是我想要的。

有没有办法做到这一点,我没有看到?

Update:

我按照 user42005 和 hgomersall 的建议使用了 numpy。不幸的是,这并没有给我带来我想要的加速。我的极其简单的 C 程序在 11 秒内生成了约 700MB 的数据,而我使用 numpy 的等效 Python 程序则需要大约 700 秒!很难相信这就是两者之间的性能差异(我更有可能相信我在某个地方犯了一个天真的错误......)


我想你可以使用 numpy:http://www.numpy.org http://www.numpy.org- numpy 中的基本数组类型至少支持无复制视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法获取 python array.array() 的视图? 的相关文章

随机推荐