Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么熊猫中的内存使用报告的整数数与对象数据类型相同?_Python_Pandas - Fatal编程技术网

Python 为什么熊猫中的内存使用报告的整数数与对象数据类型相同?

Python 为什么熊猫中的内存使用报告的整数数与对象数据类型相同?,python,pandas,Python,Pandas,我试图理解熊猫中整数和字符串(对象)数据类型在内存使用方面的差异 import pandas as pd df_int = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'), dtype=int) 正如预期的那样,这需要大约3.2kb的内存,因为每列都是64位整数 In [38]: df_int.info() <class 'pandas.core.frame.DataFrame'>

我试图理解熊猫中整数和字符串(对象)数据类型在内存使用方面的差异

import pandas as pd
df_int = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'), dtype=int)
正如预期的那样,这需要大约3.2kb的内存,因为每列都是64位整数

In [38]: df_int.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 100 entries, 0 to 99
Data columns (total 4 columns):
A    100 non-null int64
B    100 non-null int64
C    100 non-null int64
D    100 non-null int64
dtypes: int64(4)
memory usage: 3.2 KB
对于使用转换为字符串的整数初始化的数据帧,它几乎是24KB

In [42]: sys.getsizeof(df_str)
Out[42]: 23984
为什么Pandas中的内存使用报告的整数数与字符串数(对象数据类型)相同?

在后面,使用
'deep'
获取实际值(否则这是一个估计值)

df_str.info(内存使用率='deep')
#
#范围索引:100个条目,0到99
#数据列(共4列):
#100非空对象
#B 100非空对象
#C 100非空对象
#D 100非空对象
#数据类型:对象(4)
#内存使用率:23.3KB
“深刻”的值相当于“深刻反省的真实”。 内存使用情况以人类可读的单位显示(以2为基数表示)。 在没有深入反省的情况下,根据列进行内存估计 假定值占用相同内存的数据类型和行数 对应数据类型的金额。有了深刻的记忆内省 实际内存使用率计算是以 计算资源


回答了我的问题。非常感谢。
In [44]: sys.getsizeof(df_int)
Out[44]: 3304
In [42]: sys.getsizeof(df_str)
Out[42]: 23984
df_str.info(memory_usage='deep')
#<class 'pandas.core.frame.DataFrame'>
#RangeIndex: 100 entries, 0 to 99
#Data columns (total 4 columns):
#A    100 non-null object
#B    100 non-null object
#C    100 non-null object
#D    100 non-null object
#dtypes: object(4)
#memory usage: 23.3 KB