Python中的短整数

Arn*_*nav 18 python memory-management short

Python根据底层系统架构自动分配整数.不幸的是,我有一个庞大的数据集需要完全加载到内存中.

那么,有没有办法强制Python只使用2个字节的某些整数(相当于C++'short')?

Arm*_*her 35

不.但是你可以在数组中使用短整数:

from array import array
a = array("h") # h = signed short, H = unsigned short
Run Code Online (Sandbox Code Playgroud)

只要该值保留在该数组中,它就是一个短整数.


Arn*_*nav 5

感谢Armin指出'阵列'模块.我还发现了'struct'模块,它在一个字符串中包含c样式的结构:

从文档(https://docs.python.org/library/struct.html):

>>> from struct import *
>>> pack('hhl', 1, 2, 3)
'\x00\x01\x00\x02\x00\x00\x00\x03'
>>> unpack('hhl', '\x00\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>>> calcsize('hhl')
8
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用 NumyPy 的 int 作为 np.int8 或 np.int16。

  • 我的名字是 numpy - 带有一个 umpy。所有其他数据包都允许我撞你。 (2认同)