【问题标题】:Matlab importdata() function equivalent in PythonPython中等效的Matlab importdata()函数
【发布时间】:2014-03-06 21:04:23
【问题描述】:

matlab 上有一个名为 importdata 的函数,它可以从 ASCII 文件中导入数据,并将其放入具有 2 个变量的结构中:textdata 和 data。它自动识别数据格式(字符串、浮点数等)、标题和分隔符。这个函数对我来说很方便,所以我正在搜索 python 包中是否有类似的东西,比如 numpy 和 scipy。我使用 numpy.loadtxt,但有时我必须同时使用 skiprows、delimiter、usecols 和 dtype。有人知道一些更容易识别它的函数吗?

【问题讨论】:

  • 你检查numpy的loadtxt了吗?还有一个scipy.io.loadmat,其文档说明它“加载 MATLAB 数据文件”。
  • 我在描述中提到我也使用了 numpy.loadtxt,但要做到这一点,我必须指定skirows、分隔符、usecols 等。在 matlab 的导入数据中我只使用它,没有指定任何内容,它可以很好地自动识别skirows、delimiter等。 scipy.io.loadmat 适用于 .mat 文件,而不适用于 txt 文件。它返回“未知的 mat 文件类型”。

标签: python matlab numpy import ascii


【解决方案1】:

看起来像 pandas http://pandas.pydata.org 可能是要走的路,如果你想要一个真正无缝的导入。我见过 pandas 优雅地处理各种奇怪的丢失/格式错误的数据。也就是说,您的数据结构确实比您想象的要复杂一些。

pandas.read_csv("file")

【讨论】:

  • 非常感谢。 pandas.read_csv("file") 也读取 txt 文件以及 matlab 的 importdata()。我唯一要做的就是指定skirows。对我来说,现在这是在 python 中读取 ASCII 文件的最佳方式,我可以保留标题的结尾,pandas 将其解释为列的名称。这太棒了!。我的建议是通过 np.array() 将其转换为 numpy 数组,以便在 numpy 中使用它。
猜你喜欢
  • 2014-04-04
  • 2021-04-22
  • 1970-01-01
  • 2020-03-17
  • 2019-10-04
  • 2013-03-29
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多