Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的项目目前使用 NumPy,仅用于内存高效数组(bool_、uint8、uint16、uint32)。
我想让它在不支持 NumPy 的 PyPy 上运行。(无论如何安装失败)
所以我想知道:有没有其他内存有效的方式来在 Python 中存储数字数组?PyPy 支持什么?PyPy 有它自己的东西吗?
注意:array.array 不是一个可行的解决方案,因为在我的测试中它使用的内存比 NumPy 多得多。
array.array是一个内存高效的数组。它将字节/字等打包在一起,因此整个数组只有几个字节的额外开销。
numpy 可以使用较少内存的一个地方是当您有一个稀疏数组时(并且正在使用其中一种稀疏数组实现)
如果您没有使用稀疏数组,那么您只是测量错误。
array.array 也没有打包的 bool 类型,因此您可以将其实现为围绕 anarray.array('I')或 a 的包装器,bytearray()甚至只使用带有 Python long 的位掩码
array.array('I')
bytearray()