/
merge.py
90 lines (67 loc) · 2.35 KB
/
merge.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/python
import os,sys,re,string,csv
from numpy import *
from pylab import *
def read_files(pathtomerge):
files = os.listdir( pathtomerge )
files.sort()
res = []
for i in range(0,len(files)):
res0 = re.search('(\w+(\w|\W)*\.txt)',files[i])
if res0 is not None:
res.append( res0 )
if res == None or not res:
return
dataAllTrainingSizes = {};
for i in range(0,len(res)):
filename = res[i].group(0)
trainsize = re.search('(\d+)\_.*',filename)
# print trainsize
# print trainsize.group(0)
trainsize = int( string.atof( trainsize.group(1) ) );
# print trainsize
path0 = pathtomerge + filename
print 'Loading file:\t ' + path0
dataObj = csv.reader(open(path0),delimiter=',')
data = []
for line in dataObj:
data.append( map(lambda x: string.atof(x), line) )
data = array(data)
if dataAllTrainingSizes.keys().__contains__(trainsize):
dataAllTrainingSizes[trainsize].append( [path0, data ] )
else:
dataAllTrainingSizes[trainsize] = [ path0, data ]
return dataAllTrainingSizes
if __name__=="__main__":
pathtomerge = sys.argv[1]
if not os.path.exists(pathtomerge):
sys.exit()
wrtosave = arange(0.04,0.48,0.2)
datatosave = read_files( pathtomerge )
# print datatosave
#print wrtosave
newdata = read_files( './' )
#print newdata
allwr = arange(0.04,0.5,0.04)
#print allwr
figs = { 4: ' (25%)', 7: ' (40%)', 11: ' (60%)', 15: ' (80%)' }
for k in sort( figs.keys() ):
mergeddata = zeros((len(allwr),4))
name = datatosave[k+1][0]
data = datatosave[k+1][1]
print data
namenew = newdata[k+1][0]
datanew = newdata[k+1][1]
print datanew
i = 0
j = 0
for pos in range(0,12):
if pos == 0 or pos == 5 or pos == 10:
mergeddata[pos,:] = data[i,:]
i = i + 1
else:
mergeddata[pos,:] = datanew[j,:]
j = j + 1
print mergeddata
raw_input("This will merge data from\n-> " + namenew + "\ninto\n-> "+ name+"\n Do you wish to continue?\n")
savetxt(name,mergeddata,fmt='%.6f',delimiter=',')