Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从hdf5文件读取数据,时间成本快速增加_Python_Database_Numpy_Pandas_Hdf5 - Fatal编程技术网

Python 从hdf5文件读取数据,时间成本快速增加

Python 从hdf5文件读取数据,时间成本快速增加,python,database,numpy,pandas,hdf5,Python,Database,Numpy,Pandas,Hdf5,我有一个大小为1.27gb的数据集。虽然我可以把它们都放进内存,但做数据分析需要很多时间。我的想法是随机抽取部分数据进行分析 我使用的语言是python。我首先将所有数据以hdf5的形式放入: import pandas as pd import numpy as np import time store = pd.HDFStore('train.h5', mode='w') data_reader = pd.read_csv('./train.csv', chunksize=1e8) f

我有一个大小为1.27gb的数据集。虽然我可以把它们都放进内存,但做数据分析需要很多时间。我的想法是随机抽取部分数据进行分析

我使用的语言是python。我首先将所有数据以hdf5的形式放入:

import pandas as pd
import numpy as np
import time

store = pd.HDFStore('train.h5', mode='w')
data_reader = pd.read_csv('./train.csv', chunksize=1e8) 

for i, chuck in enumerate(data_reader):

    store.append('all_train', chuck)

store.close()
执行此操作不需要很长时间,生成的文件大小为1.64gb:

<class 'pandas.io.pytables.HDFStore'>
File path: train.h5
/all_train            frame_table     (typ->appendable,nrows->29118021,ncols->6,indexers->[index])
当样本量非常小时,比如说20,则需要0.2秒来对数据进行采样。但是,当我将尺寸增加到35时,需要2分钟以上。那么,为什么时间成本增长如此之快


对从大数据中进行采样有什么建议吗?

仅对35行进行采样需要2分钟吗?还是三万五千行?
store = pd.HDFStore('train.h5')
nrows = store.get_storer('all_train').nrows

r = np.random.randint(0,nrows,size=20)

now = time.time()
print_type(pd.read_hdf('train.h5', 'all_train', where="index=r"))
print 'Time Cost : %f' % (time.time() - now)