将 hdf5 matlab 字符串加载到 Python 中

2023-11-26

我在使用 Python 读取 hdf5 matlab 7.3 文件时遇到麻烦。 我正在使用 h5py 2.0.1。

我可以读取文件中存储的所有矩阵,但无法读取字符串列表。 h5py 将字符串显示为形状 (1, 894)、类型 |04 的数据集。 该数据集包含对象引用,我尝试使用h5file[obj_ref] syntax.

这会产生类似的结果dataset "FFb": shape (4, 1) type "<u2"。 我将其解释为长度为四的字符数组。这似乎是字符串的 ASCII 表示形式。

有没有简单的方法可以把绳子取出来?

是否有任何软件包提供 matlab 到 python hdf5 支持?


我假设你的意思是它是 MATLAB 中的字符串元胞数组?此输出看起来很正常:数据集是对象数组(|O4是 NumPy 对象数据类型)。每个对象都是一个 2 字节整数数组 (<u2是 NumPy 小端无符号 2 字节整数数据类型)。 h5py 无法知道数据集是字符串元胞数组;它也可以是任意 16 位整数的元胞数组。

获取字符串的最简单方法是使用迭代器,使用 unichr 来转换字符,如下所示:

strlist = [u''.join(unichr(c) for c in h5file[obj_ref]) for obj_ref in dataset])

它的作用是迭代数据集(for obj_ref in dataset) 创建一个新列表。对于每个对象引用,它取消引用该对象(h5file[obj_ref]) 获取整数数组。它将每个整数转换为一个字符(unichr(c)) 并将这些字符连接在一起形成一个 Unicode 字符串 (u''.join()).

请注意,这会生成一个 unicode 字符串列表。如果您绝对确定每个字符串仅包含 ASCII 字符,则可以替换u'' by '' and unichr by chr.

Caveat:我没有h5py;这篇文章基于我使用 MATLAB 和 NumPy 的经验。您可能需要调整语法或迭代顺序以适合您的数据集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 hdf5 matlab 字符串加载到 Python 中 的相关文章

  • 在 SQLAlchemy 中,过滤器是在连接之前还是之后应用?

    使用 SQLAlchemy 我执行如下查询 import models as m import sqlalchemy as sa s session maker q s query m ShareCount m Article join m
  • 学习Python中的解析器

    我记得我读过有关解析器的内容 您只需提供一些示例行 它就知道如何解析某些文本 它只是确定两条线之间的差异 以了解可变部分是什么 我以为它是用 python 写的 但我不确定 有谁知道那是什么图书馆吗 可能你的意思是模板制作器 http co
  • virtualenvwrapper 函数在 shell 脚本中不可用

    所以 我再一次制作了一个很棒的 python 程序 它让我的生活变得更加轻松 并节省了大量时间 当然 这涉及到一个 virtualenv 用mkvirtualenvvirtualenvwrapper 的功能 该项目有一个requiremen
  • 使用ideone时如何传入命令行参数?

    我正在使用 ideone 在线解释器 http ideone com http ideone com 来测试一些 C 和 Python 程序 如何指定命令行参数而不是使用 STDIN 输入 看起来你不能 但是快速破解应该做的伎俩 stati
  • 在 MATLAB 中使用 FFT 的频率响应

    这是场景 使用频谱分析仪 我有输入值和输出值 样本数是32000采样率为2000样本 秒 输入是正弦波50 hz 输入为电流 输出为压力 单位 psi 我如何使用 MATLAB 根据这些数据计算频率响应 使用 MATLAB 中的 FFT 函
  • 获取字符串模板中所有标识符列表的函数(Python)

    对于标准库string template在Python中 有没有一个函数可以获取所有标识符的列表 例如 使用以下 xml 文件
  • 无法使用Python请求会话模块登录网站

    我刚刚开始进行网络抓取 对于我的第一个项目 我尝试使用 requests Session 登录 artofproblemsolving com 并访问另一个用户的帐户 这是我的代码 import requests LOGIN URL htt
  • 在 MATLAB 中检索 spfun、cellfun、arrayfun 等中的元素索引

    有什么办法可以找回index调用函数的元素的cellfun arrayfun or spfun行为 即检索函数范围内元素的索引 为了简单起见 假设我有以下玩具示例 S spdiags 1 4 0 4 4 f spfun x 2 x S 它构
  • lmfit模型拟合然后预测

    我正在领养lmfit进行曲线拟合并使用拟合模型进行预测 然而下面的代码并没有达到我想要的效果 能否请你帮忙 谢谢 import numpy as np from lmfit import Model def linearModel x a0
  • Python 中“is”运算符的语义是什么?

    如何is运算符确定两个对象是否相同 它是如何工作的 我找不到它的记录 来自文档 http docs python org reference datamodel html 每个对象都有一个身份 一个类型 和一个值 对象的身份 一旦发生就永远
  • 使用 python 从 CSV 创建字典

    我有一个 CSV 格式的文件 其中 A B 和 C 是标题 我如何以Python方式将此CSV转换为以下形式的字典 A 1 B 4 C 7 A 2 B 5 C 8 A 3 B 6 C 9 到目前为止我正在尝试以下代码 import csv
  • matplotlib vlines 图中未应用 y 轴的最小值

    我正在 matplotlib 中绘制 vlines 图 数据集中的所有 y 值如下 gt 0 我希望 y 轴最底部的刻度能够读取0 但相反 我得到 500 这是代码 usr bin env python import numpy as np
  • 解析整数集的字符串并列出间隔

    I have 2 5 7 9 12 string 我想从中获取 2 5 7 8 9 12 列表 python中有没有内置的函数 Thanks UPD 我想 直接的答案是No 不管怎样 谢谢你的 片段 使用一个 建议者斯文 马尔纳克 s 2
  • 如何将 django ModelForm 字段显示为不可编辑

    接受我的初步教训django ModelForm 我想让用户能够编辑博客中的条目 BlogEntry has a date postedTime title and content 我想向用户展示一个编辑表单 其中显示所有这些字段 但仅包含
  • python 中的 F 字符串前缀给出语法错误[重复]

    这个问题在这里已经有答案了 我有一个名为 method 的变量 它的值是 POST 但是当我尝试运行时print f method method is used 它不断在最后一个双引号处给出语法错误 我找不到它这样做的原因 我正在使用 py
  • 关闭正在运行代码的 IPython Notebook

    怎么运行的 我在 IPython Notebook 中运行了一些代码 一些迭代工作 我不小心关闭了正在运行的笔记本的浏览器 但回到 IPython 仪表板 我发现这个特定的笔记本尚未关闭 所以如果我再次打开笔记本 我会在它正在执行的代码前面
  • 如何创建简单的梯度下降算法

    我正在研究简单的机器学习算法 从简单的梯度下降开始 但在尝试用 python 实现它时遇到了一些麻烦 这是我试图重现的示例 我获得了有关房屋的数据 居住面积 以英尺为单位 和卧室数量 以及最终的价格 居住面积 英尺2 2104 卧室 3 价
  • 将二进制数转换为包含每个二进制数的数组

    我试图将二进制值转换为每个 1 0 的列表 但我得到默认的二进制值而不是列表 我有一个字符串 我将每个字符转换为二进制 它给了我一个列表 其中每个字符都有一个字符串 现在我试图将每个字符串拆分为值为 0 1 的整数 但我什么也得不到 if
  • 如何在不同的目录中执行python脚本?

    Solved对于可能觉得这有帮助的人 请参阅下面我的答案 我有两个脚本 a py 和 b py 在我当前的目录 C Users MyName Desktop MAIN 中 我运行 gt python a py 第一个脚本 a py 在我当前
  • 在Python中使用os.makedirs创建目录时出现权限问题

    我只是想处理上传的文件并将其写入工作目录中 该目录的名称是系统时间戳 问题是我想以完全权限创建该目录 777 但我不能 使用以下代码创建的目录755权限 def handle uploaded file upfile cTimeStamp

随机推荐

  • 刷新 Perl STDIN 缓冲区

    有没有办法清除 Perl 中的 STDIN 缓冲区 我的程序的一部分有很长的输出 有足够的时间让某人输入几个字符 在输出之后我要求输入 但是如果在输出期间输入了字符 它们将被 附加 到输入中输入的任何内容上部分 这是我的问题的一个例子 fo
  • Chrome 上的 Google Colaboratory ServiceWorker 错误

    每当我打开协作文档时 我总是收到相同的错误消息 NotSupportedError 无法注册 ServiceWorker 用户拒绝使用 Service Worker 的权限 这发生在 chrome 上 我的浏览器允许 ServiceWork
  • 捕获隐藏桌面的屏幕截图

    我在 Windows 上使用虚拟桌面 使用我自己用 C 编写的简单应用程序 我想知道是否有办法捕获辅助 隐藏桌面的屏幕截图 我知道我可以执行 SwitchDesktop gt 捕获屏幕截图 gt SwitchDesktop 但这听起来不是一
  • 服务器端视频转换和压缩

    我想为我的 CMS 客户提供自动视频转换器 他们应该能够上传他们的 未修改的 视频文件 MP4 VMV AVI 我的服务器会将其压缩并转换为网络友好的 MP4 文件 与 YouTube 完全一样 结果很清楚 网络友好的 MP4 格式 压缩到
  • Service Worker 和 AJAX

    我正在尝试使用 AJAX 检索要在用户端显示的推送通知的详细信息 但它还不起作用 Push Notifications codelab Copyright 2015 Google Inc All rights reserved Licens
  • 不支持文化

    我使用的是 Visual Studio 2012 旗舰版 我遇到了这个错误 我不知道如何解决它 不支持文化 参数名称 名称 en UK 是无效的区域性标识符 描述 执行期间发生未处理的异常 当前的网络请求 请查看堆栈跟踪以了解更多信息 有关
  • 如何更改Python模块名称?

    只有重命名文件才可能吗 或者有没有一个 module 变量到文件来定义它的名称是什么 如果您确实想使用 import newname 语句导入文件 oldname py 有一个技巧可以实现这一点 导入模块某处使用旧名称 然后将其注入sys
  • PipedInputStream 和 PipedOutputStream 的用例

    管道流的用例有哪些 为什么不将数据读入缓冲区然后将其写出 BlockingQueue 或类似的集合可能会更好地为您服务 它们是线程安全的 健壮的并且可扩展性更好
  • 对象/数组的深度比较[重复]

    这个问题在这里已经有答案了 可能的重复 如何确定两个 JavaScript 对象相等 JavaScript 中的对象比较 如果我有两个数组或对象并且想要比较它们 例如 object1 shoes loafer penny beers bud
  • 如何在我的 java 项目中引用 Maven 依赖项的单元测试类? [复制]

    这个问题在这里已经有答案了 我需要在项目 A 的测试包 src test java 中引用项目 B 中的一些 JUnit 测试 src test java 而 B 是 A 的 Maven 依赖项 这可能吗
  • angular2 - 将值从父路由传递到子路由

    我有一条名为 home 的路线 它有 3 个子路线 文档 邮件和垃圾 在主路由组件中 它有一个名为 user 的变量 我知道有几种方法可以在突出显示的父组件和子组件之间传递信息here 但是我该如何在父 子路由之间传递信息 path hom
  • BottomSheet 的滚动问题 - Android

    我需要BottomSheet停在两个位置 我有以下代码BottomSheet
  • 使用 AJAX 的 WordPress 自定义元框输入值

    我正在使用 Wordpress 3 5 我有一个带有元框和一些输入字段的自定义帖子 sp product 这些输入之一 sp title 我想通过在输入 sp title 字段中输入来按自定义帖子标题名称进行搜索 当我按下添加按钮 也在我的
  • 无法运行程序“adb”:错误=13,权限被拒绝

    我有一个程序 它必须只执行一个命令 class MainActivity AppCompatActivity override fun onCreate savedInstanceState Bundle super onCreate sa
  • 如何在 JavaScript 中将 JSON 对象字符串化为负零?

    如何使用 JSON stringify 将负零转换为字符串 0 看来 JSON stringify 将负零转换为表示正一的字符串 有什么好的解决方法吗 var jsn negative 0 isNegative jsn negative d
  • Facebook PHP SDK 异常错误

    我从 FB 的 PHP SDK 收到一条有趣的 SDK 异常消息 我完全按照 FB 文档所说的那样设置了我的代码 调试错误消息 12 Jun 2014 21 08 12 UTC PHP Fatal error Uncaught except
  • Symfony 4 - 路由:“在此服务器上找不到请求的 URL”

    这是我的第一篇文章 所以我会尽力做到可以理解 我从 symfony 开始 有一个问题我无法单独解决 这是我的控制器 我正在使用 WAMP 当我的网址是 mysite local 时 它正常工作 并且它向我显示它应该做什么 感谢 home 函
  • 如何从docker容器保存日志文件?

    我有一个在 docker machine 上运行的 weblogic 容器 它使用 docker toolbox 在 Windows 7 上运行 并且希望将容器中的日志自动保存到 Windows 机器 我知道我可以使用docker cp命令
  • 使用 SWT 创建自定义按钮

    我想问同样的事情这个问题但使用SWT 有没有办法用自己的按钮图形制作按钮 而不仅仅是在按钮内添加图像 如果不是 还有另一种在java中创建自定义按钮的方法吗 public class ImageButton extends Canvas p
  • 将 hdf5 matlab 字符串加载到 Python 中

    我在使用 Python 读取 hdf5 matlab 7 3 文件时遇到麻烦 我正在使用 h5py 2 0 1 我可以读取文件中存储的所有矩阵 但无法读取字符串列表 h5py 将字符串显示为形状 1 894 类型 04 的数据集 该数据集包