似乎将字符串数组放入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版本的计算机上尝试了此操作,并获得了相同的结果。
答案 0 :(得分:0)
这是一个自回答,因为@Ashwini Chaudhary的评论中对此进行了回答。
我发现numpy比原始数组占用更多的内存是无效的。
sys.getsizeof
并不是报告内存使用情况的好工具:似乎可以正确报告numpy数组的大小,但只能报告原始数组中指针占用的大小。