首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python HDF5展开数组

Python HDF5展开数组
EN

Stack Overflow用户
提问于 2021-09-02 17:49:24
回答 2查看 83关注 0票数 0

我试图扩展以形成(2048000,64)。在最后一列中,我想添加"”。但我不知道该怎么做。

到目前为止,我已经尝试过:

代码语言:javascript
复制
mic['time_data'].resize(64, axis = 0)

但是它返回一个“

我对HDF5文件非常陌生,所以如果你需要比我给你的更多的信息,请告诉我!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-02 18:15:52

在重新阅读您的文章之后,我意识到您的数据集是可调整大小的(否则h5py会在调整大小时抛出一个错误)。您可以通过比较.shape属性和.maxshape属性来确认。注意:None表示在该轴上没有大小限制。

为了将来的参考,如果您想要一个可调整大小的数据集,则在创建maxshape=()参数时包括它。对于此特定数据集,如果只希望调整轴1的大小,请使用maxshape=(2048000, None)

意外的结果是由调整大小声明中的一个小错误造成的。从形状(2048000,63)到形状(2048000,64)应该是:mic['time_data'].resize(64, axis=1)mic['time_data'].resize((2048000, 64))

最新答案

下面是一个扩展的答案,它展示了如何将数据从'assembledH5Trigger.h5'添加到'assembledH5TEST.h5'。作为参考,在将数据从触发器复制到麦克风文件之前,它会打印.shape.maxshape参数。

代码语言:javascript
复制
with h5py.File('assembledH5TEST.h5', 'r+') as mic, \
     h5py.File('assembledH5Trigger.h5', 'r') as trigger:

    print(f"mic['time_data'] shape={mic['time_data'].shape}; " + \
          f" maxshape={mic['time_data'].maxshape}")          
    print(f"trigger['time_data'] shape={trigger['time_data'].shape}; " + \
          f"maxshape={trigger['time_data'].maxshape}")          
    mic['time_data'].resize((2048000, 64))
    mic['time_data'][:,63] = trigger['time_data'][:,0]
票数 0
EN

Stack Overflow用户

发布于 2021-09-02 18:43:03

在这种情况下,其他人在将来也会有这个问题。我就是这样解决这个问题的(可能不是一个很好的解决方案,但它是有效的):

代码语言:javascript
复制
    mic = h5py.File('assembledH5TEST.h5', "r+")
    trigger = h5py.File('assembledH5Trigger.h5', "r")


    arr = np.ones((2048000, 64))

    arr[:, 0:63] = mic["time_data"][:]
    arr[:,63] = trigger['time_data'][:,0]
    # Code to write arr to hdf5 file
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69035032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档