我试图计算由某一列标识的两个数据集的平均值。这里是AA2列。简单的解决方案是首先识别数据集,然后计算该数据集的平均值。然而,在python中这看起来不太好。有没有办法让纽比帮我?在
我的数据集:
Number AA1 AA2 AA3 Atom amou mean_shift stddev 187 ALA GLU LEU C 1 119.47 0.00 187 ALA GLU LEU O 1 8.42 0.00 188 ALA GLU LYS C 1 120.67 0.00 188 ALA GLU LYS O 1 9.11 0.00 777 ARG GLN ARG C 1 117.13 0.00 777 ARG GLN ARG O 1 8.48 0.00
我想要的:
187 GLU C 1 (119.47+120.67+117.13)/3 0.00 187 GLU O 1 (8.42+9.11+8.48)/3 0.00
编辑: 我澄清了这个例子。平均值是在mean_shift列上计算的,但只在原子相同的行上计算。我的(不是很好的版本)是:
i,j = 0,0
# iterate over all keys
for j in range(1, len(data_one)):
key = data_two[j][3]
aminoacid = data_two[j][5]
print key, aminoacid
stop
keyeddata=[]
for i in range(1, len(data_one)):
if (data_one[i][2]==key):
keyeddata.append(data_one[i])
print mean(keyeddata[6])
干杯, 谢谢
使用结构化阵列可以很容易地做到这一点,例如:
现在,有了这个
^{pr2}$a
数组,您可以轻松地提取组。首先,让我们找出某个属性的唯一元素:现在,可以通过匹配属性对数据进行分组。例如:
从那里可以对任意属性应用任何计算。例如,平均数:
编辑: 现在,要选择符合多个条件的数据,请记住前面的
a['AA2'] == 'GLN'
示例:您可能需要对标准进行一些组合运算(使用
itertools
或类似的方法)来自动执行该过程,并且您可能还希望查看一下here以查看NumPy中可用的逻辑函数。在你检查过熊猫吗?它是建立在numpy之上的,它有一些非常好的特性来处理标记数据。在
http://pandas.sourceforge.net/
相关问题 更多 >
编程相关推荐