Mercurial > pylearn
comparison pmat.py @ 116:9330d941fa1f
added function load_pmat_as_array_dataset and save_array_dataset_as_pmat
author | Frederic Bastien <bastienf@iro.umontreal.ca> |
---|---|
date | Wed, 07 May 2008 13:07:33 -0400 |
parents | 01aa97a2212d |
children | c2f17f231960 |
comparison
equal
deleted
inserted
replaced
115:01aa97a2212d | 116:9330d941fa1f |
---|---|
73 w = int(w) | 73 w = int(w) |
74 X = numpy.numarray.fromstring(datastr,elemtype, shape=(l,w) ) | 74 X = numpy.numarray.fromstring(datastr,elemtype, shape=(l,w) ) |
75 if byteorder!=sys.byteorder: | 75 if byteorder!=sys.byteorder: |
76 X.byteswap(True) | 76 X.byteswap(True) |
77 return X | 77 return X |
78 | |
79 def load_pmat_as_array_dataset(fname): | |
80 import dataset,lookup_list | |
81 | |
82 #load the pmat as array | |
83 a=load_pmat_as_array(fname) | |
84 | |
85 #load the fieldnames | |
86 fieldnames = [] | |
87 fieldnamefile = os.path.join(fname+'.metadata','fieldnames') | |
88 if os.path.isfile(fieldnamefile): | |
89 f = open(fieldnamefile) | |
90 for row in f: | |
91 row = row.split() | |
92 if len(row)>0: | |
93 fieldnames.append(row[0]) | |
94 f.close() | |
95 else: | |
96 self.fieldnames = [ "field_"+str(i) for i in range(a.shape[1]) ] | |
97 | |
98 return dataset.ArrayDataSet(a,lookup_list.LookupList(fieldnames,[x for x in range(a.shape[1])])) | |
99 | |
100 def save_array_dataset_as_pmat(fname,ds): | |
101 ar=ds.data | |
102 save_array_as_pmat(fname,ar,ds.fieldNames()) | |
78 | 103 |
79 def save_array_as_pmat( fname, ar, fieldnames=[] ): | 104 def save_array_as_pmat( fname, ar, fieldnames=[] ): |
80 s = file(fname,'wb') | 105 s = file(fname,'wb') |
81 | 106 |
82 length, width = ar.shape | 107 length, width = ar.shape |
421 pmat.append( [1, 2] ) | 446 pmat.append( [1, 2] ) |
422 pmat.append( [3, 4] ) | 447 pmat.append( [3, 4] ) |
423 pmat.close() | 448 pmat.close() |
424 | 449 |
425 pmat = PMat( 'tmp.pmat', 'r' ) | 450 pmat = PMat( 'tmp.pmat', 'r' ) |
426 print pmat | 451 ar=load_pmat_as_array('tmp.pmat') |
427 print pmat[:] | 452 ds=load_pmat_as_array_dataset('tmp.pmat') |
453 | |
454 print "PMat",pmat | |
455 print "PMat",pmat[:] | |
456 print "array",ar | |
457 print "ArrayDataSet",ds | |
458 for i in ds: | |
459 print i | |
460 save_array_dataset_as_pmat("tmp2.pmat",ds) | |
461 ds2=load_pmat_as_array_dataset('tmp2.pmat') | |
462 for i in ds2: | |
463 print i | |
428 # print "+++ tmp.pmat contains: " | 464 # print "+++ tmp.pmat contains: " |
429 # os.system( 'plearn vmat cat tmp.pmat' ) | 465 # os.system( 'plearn vmat cat tmp.pmat' ) |
430 | 466 import shutil |
431 os.remove( 'tmp.pmat' ) | 467 for fname in ["tmp.pmat", "tmp2.pmat"]: |
432 if os.path.exists( 'tmp.pmat.metadata' ): | 468 os.remove( fname ) |
433 import shutil | 469 if os.path.exists( fname+'.metadata' ): |
434 shutil.rmtree( 'tmp.pmat.metadata' ) | 470 shutil.rmtree( fname+'.metadata' ) |