我有一个包含多行和 8 列的数据文件 - 我想平均在第 1、2、5 列上具有相同数据的行的第 8 列 - 例如,我的文件可能如下所示:
564645 7371810 0 21642 1530 1 2 30.8007
564645 7371810 0 21642 8250 1 2 0.0103
564645 7371810 0 21643 1530 1 2 19.3619
我想平均第一行和第三行的最后一列,因为第 1-2-5 列是相同的;
我希望输出看起来像这样:
564645 7371810 0 21642 1530 1 2 25.0813
564645 7371810 0 21642 8250 1 2 0.0103
我的文件(文本文件)非常大(~10000 行)并且冗余数据(基于上述规则)不是定期间隔 - 所以我希望代码找到冗余数据,并对它们进行平均......
回应 larsks 的评论 - 这是我的 4 行代码......
import os
import numpy as np
datadirectory = input('path to the data directory, ')
os.chdir( datadirectory)
##READ DATA FILE AND CREATE AN ARRAY
dataset = open(input('dataset_to_be_used, ')).readlines()
data = np.loadtxt(dataset)
##Sort the data based on common X, Y and frequency
datasort = np.lexsort((data[:,0],data[:,1],data[:,4]))
datasorted = data[datasort]