我正在处理多个数据文件(文件_1,文件_2 .....)。我希望每个数据文件的期望输出与新列的行值保存在相同的txt文件中。
我为我的第一个数据文件(File_1)尝试了以下代码。所需的输出(Av_Age_btwn_0_to_5,Av_Age_btwn_5_to_10)作为列的行值存储在输出txt文件(Result.txt)中。现在,当我使用File_2时,我希望这些输出存储为同一txt文件的下一列的行值。然后对于File_3,以类似的方式,我希望输出在下一列中,依此类推。
import numpy as np
data=np.loadtxt('C:/Users/Hrihaan/Desktop/File_1.txt')
Age=data[:,0]
Age_btwn_0_to_5=Age[(Age<5) & (Age>0)]
Age_btwn_5_to_10=Age[(Age<10) & (Age>=5)]
Av_Age_btwn_0_to_5=np.mean(Age_btwn_0_to_5)
Av_Age_btwn_5_to_10=np.mean(Age_btwn_5_to_10)
np.savetxt('/Users/Hrihaan/Desktop/Result.txt', (Av_Age_btwn_0_to_5, Av_Age_btwn_5_to_10), delimiter=',')
任何帮助将不胜感激。
答案 0 :(得分:0)
如果我理解正确,您的每个文件都是一列,并且您希望将它们组合成一个矩阵(每列一个文件)。
也许这样的东西可以工作?
import numpy as np
# Simulate some dummy data
def simulate_data(n_files):
for i in range(n_files):
ages = np.random.randint(0,10,100)
np.savetxt("/tmp/File_{}.txt".format(i),ages,fmt='%i')
# Your file processing
def process(age):
age_btwn_0_to_5=age[(age<5) & (age>0)]
age_btwn_5_to_10=age[(age<10) & (age>=5)]
av_age_btwn_0_to_5=np.mean(age_btwn_0_to_5)
av_age_btwn_5_to_10=np.mean(age_btwn_5_to_10)
return (av_age_btwn_0_to_5, av_age_btwn_5_to_10)
n_files = 5
simulate_data(n_files)
results = []
for i in range(n_files):
# load data
data=np.loadtxt('/tmp/File_{}.txt'.format(i))
# Process your file and extract your information
data_processed = process(data)
# Store the result
results.append(data_processed)
results = np.asarray(results)
np.savetxt('/tmp/Result.txt',results.T,delimiter=',',fmt='%.3f')
最后,您会看到类似的内容:
2.649,2.867,2.270,2.475,2.632
7.080,6.920,7.288,7.231,6.880
是您要找的东西吗?
答案 1 :(得分:0)
import numpy as np
# some data
age = np.arange(10)
time = np.arange(10)
mean = np.arange(10)
output = np.array(list(zip(age,time,mean)))
np.savetxt('FooFile.txt', output, delimiter=',', fmt='%s')
# ^^^^^^^^ --> Use this keyword argument if you want to save it as int. For simplicity just don't use it.
输出:
0,0,0
1,1,1
2,2,2
3,3,3
4,4,4
5,5,5
6,6,6
7,7,7
8,8,8
9,9,9