3

我的项目目前使用 NumPy,仅用于内存高效数组(bool_、uint8、uint16、uint32)。

我想让它在不支持 NumPy 的 PyPy 上运行。(无论如何安装失败)

所以我想知道:有没有其他内存有效的方式来在 Python 中存储数字数组?PyPy 支持什么?PyPy 有它自己的东西吗?

注意:array.array 不是一个可行的解决方案,因为在我的测试中它使用的内存比 NumPy 多得多。

4

1 回答 1

3

array.array一个内存高效的数组。它将字节/字等打包在一起,因此整个数组只有几个字节的额外开销。

numpy 可以使用较少内存的一个地方是当您有一个稀疏数组时(并且正在使用其中一种稀疏数组实现)

如果您没有使用稀疏数组,那么您只是测量错误。

array.array 也没有打包的 bool 类型,因此您可以将其实现为围绕 anarray.array('I')或 a 的包装器,bytearray()甚至只使用带有 Python long 的位掩码

于 2013-06-14T04:27:41.500 回答