为什么numpy占用这么多的内存来存储一个字符串数组?

时间:2018-08-01 17:37:14

标签: python-3.x numpy numpy-ndarray

似乎将字符串数组放入numpy数组所占用的内存是原始数组的20倍以上。我可以理解,由于某些开销,它会占用10%的内存,但是我想知道为什么它会占用2000%的内存。

import numpy as np
from sys import getsizeof

txt = ["adsfjwofj owejifowijefiwjfoi of wofjwoijfwoijfoiwej"]
print(getsizeof(txt))

txts = [txt for _ in range(10000)]
print(getsizeof(txts))

txts_np = np.array(txts)
print(getsizeof(txts_np))

输出:

72
87624
2040112

我认为我的安装有问题,但我也在另一台具有不同numpy版本的计算机上尝试了此操作,并获得了相同的结果。

1 个答案:

答案 0 :(得分:0)

这是一个自回答,因为@Ashwini Chaudhary的评论中对此进行了回答。

我发现numpy比原始数组占用更多的内存是无效的。 sys.getsizeof并不是报告内存使用情况的好工具:似乎可以正确报告numpy数组的大小,但只能报告原始数组中指针占用的大小。