当前位置: 首页 > 面试题库 >

更新h5py数据集

红砚文
2023-03-14
问题内容

有没有人有从h5py更新hdf5数据集的想法?假设我们创建一个数据集,例如:

import h5py
import numpy
f = h5py.File('myfile.hdf5')
dset = f.create_dataset('mydataset', data=numpy.ones((2,2),"=i4"))
new_dset_value=numpy.zeros((3,3),"=i4")

是否可以将dset扩展为3x3 numpy数组?


问题答案:

您需要使用“ extendable”属性创建数据集。初始创建数据集后,无法更改此设置。为此,您需要使用“
maxshape”关键字
。元组None中的值maxshape表示该尺寸可以无限制。因此,如果f是HDF5文件:

dset = f.create_dataset('mydataset', (2,2), maxshape=(None,3))

创建一个大小为(2,2)的数据集,该数据集可以沿第一个维度无限扩展,而沿第二个维度可以无限扩展至3。现在,您可以使用扩展数据集resize

dset.resize((3,3))
dset[:,:] = np.zeros((3,3),"=i4")

第一维可以任意增加:

dset.resize((10,3))


 类似资料:
  • 概述 使用update()方法更新文档。这个方法接收以下参数: 一个方档匹配的过滤器,用于过滤要更新的文档 一个用来执行修改操作的更新文档 一个可选的参数 指定过滤器和指定查询的时候是一样的。update()方法默认只更新单个文档,使用multi可选参数指定更新所有匹配的文档。 不能更新文档的_id字段。 更新指定字段 要改变某个字段的值,MongoDB提供了更新操作,比如$set用来修改值。如果

  • 更新数据使用Update方法,Update方法的第一个参数为需要更新的内容,可以为一个结构体指针或者一个Map[string]interface{}类型。当传入的为结构体指针时,只有非空和0的field才会被作为更新的字段。当传入的为Map类型时,key为数据库Column的名字,value为要更新的内容。 Update方法将返回两个参数,第一个为 更新的记录数,需要注意的是 SQLITE 数据库

  • 查找并更新 在取出数据后,更改字段内容后更新数据。 $user = UserModel::get(1); $user->user_nickname = '老猫'; $user->user_email = 'genmaowan@163.com'; $user->save(); 直接更新数据 也可以直接带更新条件来更新数据 $user = new UserMode

  • 更新数据表中的数据 Db::name('user') ->where('id', 1) ->update(['user_nickname' => '老猫是家里最懒的猫']); 如果数据中包含主键,可以直接使用: Db::name('user') ->update(['user_nickname' => '老猫是家里最懒的猫', 'id' => 1]); update 方

  • 查找并更新 在取出数据后,更改字段内容后更新数据。 $user = UserModel::find(1); $user->user_nickname = '老猫'; $user->user_email = 'genmaowan@163.com'; $user->save(); 批量更新数据 可以使用saveAll方法批量更新数据,例如: $user = ne

  • 更新数据表中的数据 数据库操作使用 Db类封装方法,请事先在引入 Db类 use think\facade\Db; Db::name('user') ->where('id', 1) ->update(['user_nickname' => '老猫是家里最懒的猫']); 如果数据中包含主键,可以直接使用: Db::name('user') ->update(['user

  • 更新某一条记录 方法原型 : public function update($data, $id); 参数名称 参数类型 参数说明 $data array 要更新的数据 $id int OR string 要更新数据的主键 return bool 成功返回true,失败返回false 栗子 $data = array( 'name' => 'xiaoming', 'age' =>

  • 更新数据 Db::name('user') ->where('id', 1) ->update(['name' => 'thinkphp']); 实际生成的SQL语句可能是: UPDATE `think_user` SET `name`='thinkphp' WHERE `id` = 1 update 方法返回影响数据的条数,没修改任何数据返回 0 支持使用data方法传入要