我希望使用固定大小(2字节/ 16位)的整数进行进一步处理。但是sys.getsizeof()打印的大小为26,我没有大于或小于int16可以容纳的max和min的任何值。为什么会这样,我该如何解决?同样,当我将int16更改为int32时,sys.getsizeof()将28和int64打印为32。
def quantization_to_16_bit_int(float_list):
ratio = 2/65536
quantized_list = []
for i in range(len(float_list)):
v = round(float_list[i]/ratio)
quantized_list.append(v)
result = np.int16(quantized_list)
print(sys.getsizeof(result[0]))
return result
答案 0 :(得分:0)
您正在查看包装对象的大小,而不是数组元素的大小。数组元素是2个字节,而不是26个字节。您可以通过检查数组的itemsize
属性来看到这一点。
sys.getsizeof
难以理解,比直观上看起来要难得多,而且在新程序员尝试使用它的所有时刻中,它几乎从来都不是正确的工具。