jjzjj

python - 调整大小时如何压缩hdf5文件?

这是我的代码:n=100000#Thisiswhatmakesittricky-lotsoffilesgoingintothishdf5filewithh5py.File('image1.h5','w')asf:dset_X=f.create_dataset('X',(1,960,224,224),maxshape=(None,960,224,224),chunks=True,compression='gzip')dset_y=f.create_dataset('y',(1,112,224*224),maxshape=(None,112,224*224),chunks=True,com

python - 在具有 500e6 行的 hdf5 pytable 中查找重复项

问题我有一个大型(>500e6行)数据集,我已将其放入pytables数据库中。假设第一列是ID,第二列是每个ID的计数器。每个ID计数器组合都必须是唯一的。我要查找的500e6行中有一个非唯一行。作为初学者,我做过这样的事情:index1=db.cols.id.create_index()index2=db.cols.counts.create_index()forrowindb:query='(id==%d)&(counts==%d)'%(row['id'],row['counts'])result=th.readWhere(query)iflen(result)>1:printr

python - 有条件地将 HDF5 文件读取到 pandas DataFrame

我有一个巨大的HDF5文件,我想将其中的一部分加载到pandasDataFrame中以执行一些操作,但我有兴趣过滤一些行。我可以用一个例子更好地解释:原始HDF5文件看起来像这样:ABCD10341120321531352241341551319103415212911303415411214503415103213213415etcetcetcetc我想做的是将它原封不动地加载到pandasDataframe,但只是whereA==1or3or4到目前为止,我可以使用以下方法加载整个HDF5:store=pd.HDFStore('Resutls2015_10_21.h5')df=pd

python - 使用 Pandas、Python 将数据附加到 HDF5 文件

我有包含财务数据的大型pandasDataFrames。我可以毫无问题地将额外的列和DataFrame附加和连接到我的.h5文件。财务数据每分钟更新一次,我需要每分钟向.h5文件中的所有现有表追加一行数据。这是我到目前为止尝试过的方法,但无论我做什么,它都会覆盖.h5文件,而不仅仅是附加数据。HDF存储方式:#weopenthehdf5filesave_hdf=HDFStore('test.h5')ohlcv_candle.to_hdf('test.h5')#wegivethedataframeakeyvalue#format=tablesowecanappenddatasave_hd

python - PyTables 读取随机子集

是否可以从HDF5中读取行的随机子集(通过pyTables或者,最好是pandas)?我有一个包含数百万行的非常大的数据集,但只需要几千个样本进行分析。那么从压缩的HDF文件中读取呢? 最佳答案 使用HDFStore文档为here,压缩文档为here0.13支持通过构造索引进行随机访问In[26]:df=DataFrame(np.random.randn(100,2),columns=['A','B'])In[27]:df.to_hdf('test.h5','df',mode='w',format='table')In[28]:st

python - 是否可以从 Python 的 HDF5 文件中的复合数据集中读取字段名称?

我有一个HDF5文件,其中包含一个带有列名的二维表。当我抢劫这个名为results的对象时,它会在HDFView中显示。事实证明,results是一个“复合数据集”,一个一维数组,其中每个元素都是一行。以下是HDFView显示的其属性:我可以获得这个对象的句柄,我们称它为res。列名为V2pt、R2pt等我可以读取整个数组作为数据,我可以读取一个元素res[0,...,"V2pt"].这将返回V2pt列第一行中的数字。将0替换为1将返回第二行值等。如果我先验知道列名,这会起作用。但我没有。我只想获取整个数据集和它的列名。我该怎么做?我看到HDF5documentation中有一个get

python - 将 scipy 稀疏矩阵存储为 HDF5

我想以HDF5格式压缩和存储一个巨大的Scipy矩阵。我该怎么做呢?我试过下面的代码:a=csr_matrix((dat,(row,col)),shape=(947969,36039))f=h5py.File('foo.h5','w')dset=f.create_dataset("init",data=a,dtype=int,compression='gzip')我遇到这样的错误,TypeError:Scalardatasetsdon'tsupportchunk/filteroptionsIOError:Can'tprepareforwritingdata(Noappropriatef

python - 是否可以使用 python 将磁盘上的不连续数据映射到数组?

我想将硬盘上的一个大fortran记录(12G)映射到一个numpy数组。(映射而不是加载以节省内存。)存储在fortranrecord中的数据是不连续的,因为它被记录标记分开了。记录结构为“标记、数据、标记、数据、...、数据、标记”。数据区域和标记的长度是已知的。标记之间的数据长度不是4字节的倍数,否则我可以将每个数据区域映射到一个数组。在memmap中设置offset可以跳过第一个标记,是否可以跳过其他标记并将数据映射到数组?对于可能出现的歧义表达表示歉意,并感谢任何解决方案或建议。5月15日编辑这些是Fortran未格式化的文件。record中存储的数据是一个(1024^3)*

Python、NetCDF4 和 HDF5

我不知道为什么安装这些包总是那么痛苦。我使用NetCDF/HDF5已经很长时间了,无论是在Linux还是OSX上,无论是C、C++还是现在的python,让它们正确安装或运行一直是一次纯粹的恐怖之旅。netcdf4和hdf5之间的简单依赖关系是许多人痛苦的根源,我真的希望这些软件包的开发人员最终能对此做pip什么。所以,我面临的最新具体问题是:我正在尝试为python安装netCDF4。我收到以下错误:Packagehdf5wasnotfoundinthepkg-configsearchpathPerhapsyoushouldaddthedirectorycontaining`hdf5

python - hdf5 文件到 pandas 数据框

我下载了一个存储在.h5文件中的数据集。我只需要保留某些列并能够操作其中的数据。为此,我尝试将其加载到pandas数据框中。我试过使用:pd.read_hdf(path)但我得到:HDF5文件中没有数据集。我在SO(readHDF5filetopandasDataFramewithconditions)上找到了答案,但我不需要条件,答案添加了有关文件编写方式的条件,但我不是文件的创建者,所以我做不到关于那个的任何事情。我也尝试过使用h5py:df=h5py.File(path)但这并不容易操作,我似乎无法从中获取列(仅使用df.keys()的列名)关于如何执行此操作的任何想法?