python函数太多_numpy Loadtxt函数似乎消耗了太多内存
將這個(gè)浮點(diǎn)數(shù)組保存到一個(gè)文本文件將創(chuàng)建一個(gè)24M的文本文件。當(dāng)您重新加載這個(gè)文件時(shí),numpy會(huì)逐行遍歷文件,解析文本并重新創(chuàng)建對(duì)象。在
我預(yù)計(jì)在這段時(shí)間內(nèi)存使用會(huì)激增,因?yàn)閚umpy在到達(dá)文件末尾之前不知道結(jié)果數(shù)組需要多大,所以我預(yù)計(jì)至少要使用24M+8M+的其他臨時(shí)內(nèi)存。在
以下是numpy代碼的相關(guān)位,來(lái)自/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)
這種額外的內(nèi)存使用不應(yīng)該引起關(guān)注,因?yàn)檫@正是python的工作方式——雖然您的python進(jìn)程似乎使用了1億個(gè)內(nèi)存,但在內(nèi)部它會(huì)保持對(duì)哪些項(xiàng)目不再使用的了解,并將重新使用這些內(nèi)存。例如,如果要在一個(gè)程序(save,load,save,load)中重新運(yùn)行這個(gè)save load過(guò)程,那么內(nèi)存使用量不會(huì)增加到200M
總結(jié)
以上是生活随笔為你收集整理的python函数太多_numpy Loadtxt函数似乎消耗了太多内存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python打包成apk界面设计_Ste
- 下一篇: 如何将python项目部署到服务器_部署