python函数太多_numpy Loadtxt函数似乎消耗了太多内存

将这个浮点数组保存到一个文本文件将创建一个24M的文本文件。当您重新加载这个文件时,numpy会逐行遍历文件,解析文本并重新创建对象。在

我预计在这段时间内存使用会激增,因为numpy在到达文件末尾之前不知道结果数组需要多大,所以我预计至少要使用24M+8M+的其他临时内存。在

以下是numpy代码的相关位,来自/lib/npyio.py:# Parse each line, including the first

for i, line in enumerate(itertools.chain([first_line], fh)):

vals = split_line(line)

if len(vals) == 0:

continue

if usecols:

vals = [vals[i] for i in usecols]

# Convert each value according to its column and store

items = [conv(val) for (conv, val) in zip(converters, vals)]

# Then pack it according to the dtype's nesting

items = pack_items(items, packing)

X.append(items)

#...A bit further on

X = np.array(X, dtype)

这种额外的内存使用不应该引起关注,因为这正是python的工作方式——虽然您的python进程似乎使用了1亿个内存,但在内部它会保持对哪些项目不再使用的了解,并将重新使用这些内存。例如,如果要在一个程序(save,load,save,load)中重新运行这个save load过程,那么内存使用量不会增加到200M

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值