Adr*_*nNK 1 python file svmlight
我有大svmlight文件,我正在用于机器学习目的.我试图看看这些文件的总和是否会导致足够好的结果.
我想提取我的文件的随机行,以将它们提供给我的模型,但我想在RAM中加载较少的信息.
我在这里看到(从Python中的文件中读取一些随机行),我可以使用linecache,但所有解决方案最终都会将所有内容加载到内存中.
有人可以给我一些提示吗?谢谢.
编辑:忘了说我事先知道我文件中的行数.
您可以使用a 根据随机数heapq选择n条记录,例如:
import heapq
import random
SIZE = 10
with open('yourfile') as fin:
sample = heapq.nlargest(SIZE, fin, key=lambda L: random.random())
Run Code Online (Sandbox Code Playgroud)
这非常有效,因为heapq保持固定大小,它不需要对数据进行预扫描,并且元素会被替换掉,因为其他元素会被选中 - 所以最多你最终会SIZE在内存中找到元素.
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |