无法将NumPy数组导出到R数据集

时间:2018-07-16 15:46:59

标签: python r numpy rpy2 scikit-image

在将NumPy数组转换为R数据集时遇到一些困难。我在灰度上有2362 x 2163的2D图像。我必须导入每个像素的灰度值以进行一些统计分析。首先,这是我导入的过程:

import cv2
import numpy as np
from skimage import img_as_ubyte
from skimage import data
from rpy2.robjects import r
from rpy2.robjects import pandas2ri
from pandas import DataFrame
pandas2ri.activate()

首先,我使用cv2作为NumPy数组导入图像,以防万一我将数组转换为0到255(256灰度级)之间的值。

xchest = cv2.imread("/home/user/xchest.tif", cv2.IMREAD_GRAYSCALE)
xchestsk = img_as_ubyte(xchest)

输出:

type(xchestsk)

是:

<class 'numpy.ndarray'>

我目视检查了一个数组,正如预期的那样:

[[8, 8, 9, ... 200, 234, 245]...[250, 234, 134, ... 67, 8, 8]]

我需要在RStudio上可以使用和分析的简单数据集上的所有像素信息。我尝试过:

xchest_R = DataFrame(xchestsk)
xchest_R = r.data('xchestsk')
r.assign("test", xchest_R)
r("save(test, file='/home/user/xchest.gzip', compress=TRUE)")

但是当我将其加载到R上时:

> load("/home/user/xchest.gzip")

我刚得到一个值:test > "xchestsk" 就像我刚导入一个字符串一样。

我尝试过:

np.save("/home/user/xchest.npy", xchestsk)

但是当我尝试使用以下命令将其导入R时:

> library(RcppCNPy)
> xchest_R <- npyLoad("/home/user/xchest.npy", "integer")

RStudio崩溃,我必须重新启动会话。

最后,我尝试将NumPy数组转换为CSV文件:

np.savetxt("/home/eera5607/xchest.csv", xchestsk, delimiter=",")

但是当我将其导入R:

> xchest_data = read.csv(file="/home/eera5607/xchest.csv", header=FALSE, sep=",")

我无法进行简单的统计分析,例如:

> mean(xchest_data)

因为我收到此警告:

> argument is not numeric or logical: returning NA

我尝试使用以下方法将数据转换为一个变量和5000000+点:

xchest_list = xchestsk.tolist()
xchest_ov = []
for list in xchest_list:
    xchest_ov += list

然后,我将xchest_ov列表转换为CSV,但在RStudio中得到了相同的警告。

我需要导入所有这些值,如果可能的话,保持矩阵结构(但不是必须的,至少将像素值作为常规R数据集导入),我可以对其进行一些统计分析。我知道我可以直接在Python上进行一些分析,但是我希望在RStudio上获得这些数据。我对这些主题知识很少。我是放射科医生,这是我第一次与R合作。

0 个答案:

没有答案