【问题标题】:How can I pass large arrays between numpy and R?如何在 numpy 和 R 之间传递大型数组?
【发布时间】:2011-08-05 00:25:24
【问题描述】:

我正在使用 python 和 numpy/scipy 为文本处理应用程序执行正则表达式和词干提取。但我也想使用 R 的一些统计包。

将数据从 python 传递到 R 的最佳方式是什么? (然后回来?)

另外,我需要在某个时候将阵列备份到磁盘,所以如果这是最好的解决方案,我愿意从 python 保存并加载 th R。矩阵非常大(例如 100,000 x 10,000),因此使用稀疏矩阵可能也不错。

抱歉,如果这是重新发布。我一直无法找到将所有这些部分组合在一起的任何东西。

【问题讨论】:

  • 问题在于,在不同的 SE 上交叉发布不是可行的方法(除了不鼓励这样做的事实)。 SE 的一个目的是创建针对特定问题的出色解决方案的持久记录,可以从例如谷歌搜索或推荐网站。通过复制您的问题,您提高了从不同站点获得不同好的答案的可能性,这很好,但您最终会接受哪一个?此外,由于您没有通知 stats.SE 这是从 SO 交叉发布的,因此它只是被迁移了。现在,模组必须将它们合并。
  • 合并。正如chl所说,以后请不要在多个网站上发布相同的问题。
  • 我的错误。我首先在 crossvalidated 上问了这个问题,并被告知它在这里会更好。我在这里发帖后,另一个帖子也被迁移了。为了将来参考,我如何自己移动这个问题?有时很难决定哪个社区更适合回答给定问题。

标签: python r numpy matrix


【解决方案1】:

我无法评论 R 和 Python 之间共享的“大数据”,但我使用 pyRserve 比使用 RPy 或 RPy2 更容易。

话虽如此,我很好奇你正在做的文本处理? Python 显然在文本处理方面提供了很多功能,但从统计数据来看,NLTKPattern package from CLiPS 等软件包也提供了很多功能。您是在 R 中更自如地进行统计,还是在 Python 中缺少某些特定的东西?

【讨论】:

  • >你是在 R 中做统计数据更舒服,还是在 Python 中缺少一些特定的东西?
【解决方案2】:

使用 Rpy,http://rpy.sourceforge.net/,从 Python 调用 R。

需要注意的是,R 和 Python 版本都需要与构建 Rpy 二进制文件的版本完全相同。因此,您需要小心安装。

【讨论】:

  • 我对这个答案投了反对票。为什么?因为我对版本的评论?嗯,我相信这是事实,而且提起来很有用。
【解决方案3】:

【讨论】:

  • “NumPy 数组最好使用 HDF 标准保存”... HDF 很棒,但如果您只需要有效地将数组保存到磁盘,那就有点大材小用了。为了简单、高效地保存和加载 numpy 数组,只需使用 numpy.savenumpy.load。这就是它们的目的,它们避免了酸洗 numpy 数组时产生的(巨大的)开销。当然,如果你想从其他语言加载数组,HDF 可能是一个不错的途径。
  • @Joe Kington:+1 好点!谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-01-09
  • 2011-06-29
  • 1970-01-01
  • 2010-09-21
  • 2017-02-02
  • 2016-11-07
  • 2011-04-19
相关资源
最近更新 更多