gpt4 book ai didi

python - 使用 rpy2 将二维 numpy 数组保存为 R 文件格式

转载 作者:太空宇宙 更新时间:2023-11-03 12:25:06 24 4
gpt4 key购买 nike

这是一个初学者的问题,但是如何使用 rpy2 将 2d numpy 数组保存到(压缩的)R 格式的文件中?明确地说,我想将它保存在 rpy2 中,然后使用 R 读取它。我想避免使用 csv,因为数据量会很大。

最佳答案

看起来你想要 save command .我会使用 pandas R interface并执行如下操作。

import numpy as np
from rpy2.robjects import r
import pandas.rpy.common as com
from pandas import DataFrame
a = np.array([range(5), range(5)])
df = DataFrame(a)
df = com.convert_to_r_dataframe(df)
r.assign("foo", df)
r("save(foo, file='here.gzip', compress=TRUE)")

不过,可能还有更优雅的方法。我愿意接受更好的建议。以上,在 R 中将被使用:

> load("here.gzip")
> foo
X0 X1 X2 X3 X4
0 0 1 2 3 4
1 0 1 2 3 4

您可以绕过 pandas 的使用并使用 numpy2ri来自 rpy2。像这样:

from rpy2.robjects import r
from rpy2.robjects.numpy2ri import numpy2ri
a = np.array([[i*2147483647**2 for i in range(5)], range(5)], dtype="uint64")
a = np.array(a, dtype="float64") # <- convert to double precision numeric since R doesn't have unsigned ints
ro = numpy2ri(a)
r.assign("bar", ro)
r("save(bar, file='another.gzip', compress=TRUE)")

R 中然后:

> load("another.gzip")
> bar
[,1] [,2] [,3] [,4] [,5]
[1,] 0 4.611686e+18 9.223372e+18 1.383506e+19 1.844674e+19
[2,] 0 1.000000e+00 2.000000e+00 3.000000e+00 4.000000e+00

关于python - 使用 rpy2 将二维 numpy 数组保存为 R 文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11586582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com