数据处理库列表

计算科学 图书馆 数据集 数据库 数据管理
2021-12-16 18:31:47

我正在尝试汇总计算科学家在尝试处理数据时发现有用的所有工具的完整列表,即以一种格式获取数据,提取有用的位,然后将其转换为不同的格式。

那么您过去使用哪些库来从固定宽度、CSV、XML 等文件中获取数据,对数据进行排序,并将其输出为有用的格式?

3个回答

对于这些任务,我最喜欢的语言是 Python;Perl 也适用于那些有这种倾向的人。

Python 模块:

  • Python 标准库中的csv模块处理解析 CSV 文件。
  • Python 标准库还具有用于标准标记语言(如 XML、HTML、SGML 等)的模块。
  • 对于固定宽度的字符串,请参阅Stack Overflow 上的这篇文章
  • 我没有使用过这个模块,但据说p3d是一个 Python 模块,可以帮助解析 pdb 格式的蛋白质数据。
  • Python 中的正则表达式模块非常有用。
  • 您还可以谷歌或查看Python 包索引以获取适合您需要的其他 Python 包。

Perl 模块:

C++ 库:

C 库:

  • 同样,有许多 XML 解析器库。值得一试的是ExpatGdome2libxml2
  • 很多人似乎都使用自己的 C 库来进行 CSV 解析。我找到了一个 library 的文档,但看起来有点粗略。
  • 对于固定宽度的文件,您可以再次使用fprintf
  • 我所知道的最好的 C 正则表达式库是PCRE

希望这可以帮助。

当主要任务是更改数据的形状或结构而不是读取特定的文件格式(例如 .mat 或 hfd5 用于相同形状的矩阵)时,我发现Mathematica非常适合该任务。它的原生数据结构本质上是一棵树(list of lists of lists ...),它可以使用模式匹配或其他方式对它们进行灵活的转换。

在我看来它有两个弱点:

  • 如果它还不支持输入/输出文件格式,那么它不是实现您自己的导入器的最佳工具(除非格式很简单)。 这是支持的格式列表。 (支持PDB。)

  • 如果您的所有数据都能舒适地放入内存中,它就会很好地工作。我发现它对于顺序数据处理(即读取一小部分输入并立即输出)并不是一个很好的工具。

对于将复杂或结构化数据揉捏成所需形状(想想高维不规则数组或类似 XML 的结构化数据),它是一个非常好的工具。

我同意 Python 在这项任务上非常出色。我想在列表中添加一些工具:

  • 如果您想从网上提取数据,或者想轻松填写表格,那么机械化是最佳选择。
  • 听说BeautifulSoup非常擅长解析 XML/HTML 文件。