好的,所以我在csv文件中有一些数据,看起来大致如下:
[fragment1, peptide1, gene1, replicate1, replicate2, replicate3]
[fragment1, peptide2, gene1, replicate1, replicate2, replicate3]
[fragment2, peptide1, gene2, replicate1, replicate2, replicate3]
[fragment2, peptide2, gene2, replicate1, replicate2, replicate3]
[fragment3, peptide1, gene2, replicate1, replicate2, replicate3]
问题是这个 - 我需要以几种不同的方式使用这些数据(三次重复):
数据文件都具有相同的列,但行(即片段/肽/基因的数量)不同,因此我必须在不指定行号的情况下读取数据。基本上,我需要的是每行,每个片段和每个基因的统计数据(变异系数)。
跨行的变体只使用三个重复(总是来自一行的三个值),当然非常简单。跨片段和跨基因的变体首先计算使用来自每个适用的replicate1的第一统计数据的统计数据,然后是每个replicate2,然后是replicate3,(来自未知行数的未知数量的值),之后使用先前的值进行相同的统计计算(即总是三个值)。
我有一个脚本可以做到这一点,差不多,但它很长,而且(我认为)过于复杂。我基本上读了三次文件,每次都以不同的方式收集数据,monstly在列表中,有时候是numpy.arrays。
从本质上讲,我的问题是如何有效地以不同方式最佳地读取数据,包括速度和“少代码”。我试图找到类似的问题,但无济于事。任何有关如何做到这一点的提示将不胜感激,并提前感谢!
答案 0 :(得分:0)
我会选择numpy.loadtxt
。
import numpy as np
data = np.loadtxt(open('myfile.csv', 'rb'), delimiter=',')
# 1 Access all rows
for row in data:
print row
# Get all data in column 2 and 3
print data[:, (2,3)]
我不确定你在第2点和第3点的要求。你能提供样本输入和预期输出吗?