【发布时间】:2012-07-30 22:51:50
【问题描述】:
我正在使用 rpy2,但我遇到了一个困扰我的问题:我知道如何将 Python 数组或列表转换为 R(感谢 rpy2)可以在 Python 中处理的 FloatVector,但我不知道可以做相反的事情,比如说,我有一个 R 可以处理的 FloatVector 或 Matrix 并将其转换回 Python 数组或列表...可以这样做吗?
提前致谢!
【问题讨论】:
我正在使用 rpy2,但我遇到了一个困扰我的问题:我知道如何将 Python 数组或列表转换为 R(感谢 rpy2)可以在 Python 中处理的 FloatVector,但我不知道可以做相反的事情,比如说,我有一个 R 可以处理的 FloatVector 或 Matrix 并将其转换回 Python 数组或列表...可以这样做吗?
提前致谢!
【问题讨论】:
这就像一个魅力:
vector=numpy.asarray(vector_R)
【讨论】:
自己找到了答案:-)。假设vector_R 是一个FloatVector。要将其转换回 Python,您需要执行以下操作:
import rpy2.robjects.numpy2ri as rpyn
vector=rpyn.ri2numpy(vector_R)
就是这样! “vector”现在是一个 Numpy 数组。
【讨论】:
在最新版本的 rpy2 中,您可以简单地直接这样做:
import numpy as np
array=np.array(vector_R)
【讨论】:
import rpy2.robjects.numpy2ri as rpyn
vector=rpyn.ri2py(v)
在新的 rpy2 中做,其中 v 是向量
【讨论】: