将常量值添加到存储在 hdf5 文件中的数组
Add constant value to an array which is stored in an hdf5 file
我想向数组添加一个常量值。该数组存储在 hdf5 文件中。
f = h5py.File(fileName)
f['numbers'] = f['numbers'] + 5
给我一个错误 TypeError: unsupported operand type(s) for +: 'Dataset' and 'int'
我应该怎么做?
你必须使用 the actual numpy.add
function:
ds = f['numbers']
ds[:] = np.add(ds, 5)
(虽然我 更喜欢你的语法。也许这值得向 h5py 人建议。)
f['numbers'][:]+=5
有效。
f['numbers'] + 5
不起作用,因为 Dataset 对象没有像 __add__
这样的方法。所以 Python 解释器给你 unsupported
错误。
添加 [:]
得到 ndarray
,具有全套 numpy
方法。
文档中没有谈到将数据切片加载到内存中吗?
`f['numbers'][:10] += 5
可能会作为更改部分的方式。添加仍在内存中完成。
查看之前的问题,例如
另一种选择是查看编译后的 h5
代码。可能有基于 Fortran 或 C 的脚本会像这样更改数据。您可以轻松地从 Python.
调用它们
我想向数组添加一个常量值。该数组存储在 hdf5 文件中。
f = h5py.File(fileName)
f['numbers'] = f['numbers'] + 5
给我一个错误 TypeError: unsupported operand type(s) for +: 'Dataset' and 'int'
我应该怎么做?
你必须使用 the actual numpy.add
function:
ds = f['numbers']
ds[:] = np.add(ds, 5)
(虽然我 更喜欢你的语法。也许这值得向 h5py 人建议。)
f['numbers'][:]+=5
有效。
f['numbers'] + 5
不起作用,因为 Dataset 对象没有像 __add__
这样的方法。所以 Python 解释器给你 unsupported
错误。
添加 [:]
得到 ndarray
,具有全套 numpy
方法。
文档中没有谈到将数据切片加载到内存中吗?
`f['numbers'][:10] += 5
可能会作为更改部分的方式。添加仍在内存中完成。
查看之前的问题,例如
另一种选择是查看编译后的 h5
代码。可能有基于 Fortran 或 C 的脚本会像这样更改数据。您可以轻松地从 Python.