小编use*_*375的帖子

用于核外计算/数据挖掘的Python工具

我对python mining数据集感兴趣,这些数据集太大而无法放在RAM中但只能放在一个HD中.

据我所知,我可以将数据导出为hdf5文件pytables.还numexpr允许一些基本的核外计算.

接下来会发生什么?尽可能进行小批量处理,并且在不能使用迷你批处理时依靠线性代数结果来分解计算?

还是有一些我错过的更高级别的工具?

感谢您的见解,

python database numpy data-mining large-data

14
推荐指数
1
解决办法
3574
查看次数

HDFStore:table.select和RAM使用情况

我试图从大约1 GB的HDFStore表中选择随机行.当我要求大约50个随机行时,RAM使用率会爆炸.

我正在使用熊猫0-11-dev, python 2.7, linux64.

在第一种情况下,RAM使用量适合大小 chunk

with pd.get_store("train.h5",'r') as train:
for chunk in train.select('train',chunksize=50):
    pass
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,似乎整个表都被加载到RAM中

r=random.choice(400000,size=40,replace=False)
train.select('train',pd.Term("index",r))
Run Code Online (Sandbox Code Playgroud)

在最后一种情况下,RAM使用量与等效chunk大小相符

r=random.choice(400000,size=30,replace=False)    
train.select('train',pd.Term("index",r))
Run Code Online (Sandbox Code Playgroud)

我很困惑,为什么从30行随机移动到40行会导致RAM使用率急剧增加.

请注意,使用以下代码创建索引= range(nrows(table))时,表已被编入索引:

def txtfile2hdfstore(infile, storefile, table_name, sep="\t", header=0, chunksize=50000 ):
    max_len, dtypes0 = txtfile2dtypes(infile, sep, header, chunksize)

    with pd.get_store( storefile,'w') as store:
        for i, chunk in enumerate(pd.read_table(infile,header=header,sep=sep,chunksize=chunksize, dtype=dict(dtypes0))):
            chunk.index= range( chunksize*(i), chunksize*(i+1))[:chunk.shape[0]]
            store.append(table_name,chunk, min_itemsize={'values':max_len})
Run Code Online (Sandbox Code Playgroud)

感谢您的见解

编辑回答Zelazny7

这是我用来编写Train.csv到train.h5的文件.我用Zelazny7的代码编写了这个代码来自如何解决HDFStore异常:无法找到正确的原子类型

import pandas as pd
import numpy as np
from sklearn.feature_extraction import DictVectorizer


def object_max_len(x): …
Run Code Online (Sandbox Code Playgroud)

python pytables pandas hdfstore

6
推荐指数
1
解决办法
1448
查看次数

numpy.genfromtxt:delimiter =','无法拆分字符串

我不明白为什么numpy.genfromtxt不能正确分割下面的字符串,delimiter=","而它适用于我的块中的大多数其他字符串.

chunk[12968]
Out[143]: '2901869281,3279442095,2012-12-15T23:00:00.003Z,Sacramento,CA,R#3817874,United States,38.583,-121.498,11, 8, 6, 5, 1, 0, 2, 3, 3, 5, 3, 3, 2, 2, 6, 6, 1, 2, 3, 0, 1, 1, 0, 0, 2, 2, 2, 2, 1, 0, 0, 2, 1, 0, 1, 1, 2, 0, 3, 1, 1, 1, 1, 0, 0, 4, 0, 0, 0, 1, 3, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 9, 0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

python numpy genfromtxt

3
推荐指数
1
解决办法
393
查看次数

让vim移动<{> <}>以跳过折叠

我想该段的地图{ }表现得像zj,zk即保持折叠关闭,当他们见面的.有没有办法得到这种行为?

谢谢

vim

3
推荐指数
1
解决办法
54
查看次数