问题标签 [hdf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Lambda 函数受范围之外的变量影响
通过 访问 HDF5 时pandas
,我有时会遇到记录在案的错误,即无法做出超过 31 个选择条件。为了避免这种情况,我决定拆分选择条件,创建一批迭代器,然后在最后连接结果。
这是我的方法:
也就是说,我想创建一个生成器列表。调用generator()
会返回select语句,对应where条件。
然后我将所有这些存储在一个列表中。
为了完整起见,这里是`grouper():
出现的问题之一是我对where
重写 lambda 函数的定义:当我在第二轮时,新定义的where
(基于 second idCunk
)将替换lambda
里面的生成器generators[0]
。
我该如何规避这个问题?对于这种结构,我还有什么需要注意的,还是有更好的方法来处理这个问题?
python - 带有 Python、Pandas 的 HDF5:数据损坏和读取错误
所以我试图将 Pandas DataFrames 存储在 HDF5 中并得到奇怪的错误,相当不一致。至少有一半的时间,读取-过程-移动-写入循环的某些部分失败,通常没有比“HDF5 读取错误”更清楚的解释。更糟糕的是,有时表格最终会出现无意义/损坏的数据,这些数据直到下游才会停止 - 要么值相差几个数量级(甚至与正确的值不相关),要么日期没有意义(最近的数据被错误标记为 1750 年代……等等)。
我想我会经历当前的过程,然后我怀疑可能会导致问题的事情可能会有所帮助。这是它的样子:
- 阅读一些表格(称它们为“QUERY1”和“QUERY2”),看看它们是否是最新的,如果不是,
- 将 HDF5 存储中的表作为“QUERY1”并将其存储为 HDF5 存储中的 QUERY1_YYYY_MM_DD”
- 对该表的外部数据库运行相关查询。每一个都是 100 到 1500 列的每日数据,可以追溯到 1980 年。
- 将查询 1 的结果作为新的“QUERY1”存储在 HDF5 存储中
- 计算一个或多个 QUERY1、QUERY2、...QUERYn 的多个转换,这些转换将具有分层(Pandas MultiIndex)列。用 HDF5 商店中的更新/替换覆盖项目“Derived_Frame1”...等
- 多个有权访问 Windows 网络驱动器上相关 .h5 文件的人运行此例程——有时可能会,但通常不会同时运行。
我怀疑有些事情可能是问题的一部分:
使用默认格式(
df.to_hdf(store, key)
)而不是坚持使用“表格”格式df.to_hdf(store, key, format='table')
)。我这样做是因为根据 %timeit,默认格式在读取和写入方面都快 2 到 5 倍使用网络驱动器允许多个用户运行此例程并至少访问派生帧。对于这个要求,我无能为力,尤其是对于随时读取派生数据帧的访问。
从文档中,听起来重复删除和重写 HDF5 存储中的项目会做一些奇怪的事情(至少逐渐增加文件大小,不知道还有什么)。也许我应该将查询档案存储在另一个文件中?也许我应该在更新时核对并替换整个主文件?
首先在 HDF5 中存储具有 MultiIndex 列的数据帧——这似乎是让我在默认格式下发出“警告”的原因,尽管如果我使用
format='table'
.编辑:运行上述例程的不同用户也有可能/很可能使用不同版本的 Pandas 和不同版本的 PyTables。
有任何想法吗?
python - h5py (HDF5) - 大 ndarray 的随机错误 - IOError:无法准备写入数据
尝试创建相当大的 numpy ndarray 数据集时遇到一个非常奇怪的问题。
例如
块大小为 (256,256)。
如果上述 ndarray 设置为 (512,512),则一切正常。
如果上面的 ndarray 设置为(100000000000,100000000000),一切正常...
理想情况下,我想要一个大小为 (3055693983,3055693983) 的 ndarray,但失败并显示以下内容:
将 ndarray 设置为几个随机大小会产生混合结果。有些工作,有些不工作......我认为这可能很简单,比如 ndarray 的大小不能被 chunk_size 整除,但这似乎不是问题。
我在这里想念什么?
python - 如何使用 h4toh5 在 python 中将 hdf4 转换为 hdf5?
我想在python中将hdf4文件转换为hdf5,我认为这个工具h4toh5
可以用来解决这个问题,但我不知道如何在python中使用它,有人知道吗?
c - HDF-EOS 配置失败,“C 编译器无法创建可执行文件”
我正在尝试使用 ./configure 安装 HDF-EOS C 库,并且在执行配置期间,我得到以下输出:
config.log 是:
问题似乎发生在名为“confdefs.h”的头文件中,config.log 文件显示程序失败。我不知道问题是什么,我非常感谢任何帮助。
规格:Linux kali 4.3.0-kali1-amd64
#1 SMP Debian 4.3.3-5kali4 (2016-01-13) x86_64 GNU/Linux
侏儒 3.18.2
另外,不要介意我的 PATH 变量多次引用同一个位置。我会尽快解决这个问题。
r - 如何使用字符串作为变量名从 hdf5 文件中保存变量?
我有一个带有多个变量的 hdf5 文件,我想将这些变量自动存储在列表或矩阵中。
我可以通过键入访问文件中的任何变量
现在我想使用循环将所有变量保存到内存中。就像是
我试过assign()、eval()、as.name(),它们都不起作用,但我无法将它们保存到另一个变量中。但是,如果我输入 myvar=file$AGB_CO 它可以工作。如何实施?
python - 将键/值对列表转换为存储在 HDFStore 中的 pandas 数据帧
有类似的问题,但没有一个能处理我的数据框位于 HDFStore 内的情况。
我需要将时间戳/键/值项列表转换为数据帧并将其存储为多个数据帧,每个数据帧都在时间戳上建立索引,然后将其保存在 HDFStore 中。
示例代码:
此代码运行后,store['x']
仍为空。
所以显然有一些原因导致这种情况没有持续存在,而且我也不知道这些东西应该如何工作。如果我只是了解您如何附加到 HDFStore 中的表/数据帧,我当然可以弄清楚逻辑。
我也可以将数据帧保存在内存中的某种字典中,然后在最后将它们分配给 HDFStore。我不知何故有一个错误的想法,即这样做可以节省内存,也许我也错了。
r - 为什么 Fortran 中的 h5dcreate_f 函数打印这么多数字?
我正在使用在 h5files 中写入 REAL 类型变量的 Fortran 代码,因此它使用此代码
当然还有其他 h5 函数,例如geth5dims
.
但是我很困惑为什么当我使用 R 或 HDFview 打开 h5 文件时,REAL 变量的精度高达 20+ 位,而不是我期望的 fortran REAL 的 7 位。示例:在 fortran 中,当我打印出一个变量时,我有 0.1662154,但在我的 h5file 中,相同的变量是 0.166215423415234653524...
为什么所有这些额外的数字,这些数字只是噪音?这很重要,因为我将进行对舍入误差敏感的进一步计算。
在 Fortran 中使用 write 语句FORMAT(F30.25)
我得到 0.0006564661744050681591034 但在 RI 中得到 0.00065646617440506816,如果在 Fortran 中我只使用 write( , ) var 或 print *,var 而我只得到 6.565466E-4