我来自R背景,但我正在努力转换到Python,所以我可以与其他没有编程倾向的人分享我的程序。我真的很喜欢你对如何解决这个问题的看法:
我首先将.csv读入Python并解析其内容,同时省略.csv中包含的任何手动注释。
这会产生一个'列表'在python中包含所有我的数字数据线性,但我想构建数据,所以我可以像R一样分析列/行。
数据如下:
for m in range(0, 4):
print(str(data[(m*7):((m*7)+7)]))
['1.8069', '2.0448', '0.0145', '2.0701', '1.8375', '2.0178', '0.0173']
['0.8059', '1.2591', '0.0149', '1.5549', '0.9937', '2.0174', '0.0175']
['0.3055', '0.6657', '0.012', '0.6142', '0.3991', '1.5143', '0.0164']
['0.1065', '0.1715', '0.017', '0.2163', '0.1391', '1.0154', '0.0152']
['0.0492', '0.0704', '0.0168', '0.0792', '0.0592', '0.8143', '0.0143']
请注意,这些数据是生化分析(ELISA)的结果,并且是向下连续稀释的(这就是为什么最高值随着它们下降而变小的原因 - 比例是对数的)。
在R中,我可能会开始使用for循环和列表来解析这些数据,可能是这样的:
list <- list()
for (i in 1:nrow(data)){
list[[i]] <- data[,i] #All rows of column i go into list entry i
}
然后我可以做下游分析,比如在R中找到最显着的响应(具有最高幅度的数字),例如:
positives <- list()
for (i in 1:length(list)){
positives[[i]] <- max(list[[i]]) #Pulling out the maximum response from each entry
}
问题是,从任何一个.csv,可能有任何数量的ELISA数据,任何数量的积极响应,我不知道可能最适合于任务的Python数据类型筛选数据并找到积极的回应。
我已经看过像字典和数组这样的内容,但是我不知道是否有一些巧妙的技巧可以解决这些我错过的事情,因为我不知道知道我不知道的事情。
你们有什么想法吗?我真的不需要任何人为我做任何编程,只要他们能指出我正确的方向,我真的很感激。