使用rpy2将2d numpy数组保存为R文件格式
发布时间:2020-12-20 12:28:45 所属栏目:Python 来源:网络整理
导读:这是一个初学者的问题,但是如何使用rpy2将2d numpy数组保存到(压缩)R格式的文件中?为了清楚起见,我想将它保存在rpy2中,然后使用R读取它.我想避免使用csv,因为数据量会很大. 解决方法 看起来你想要 save command.我会使用 pandas R interface并做类似以下的
这是一个初学者的问题,但是如何使用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并使用rpy2中的numpy2ri.有类似的东西: 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |