Mercurial > pylearn
diff 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 |
line wrap: on
line diff
--- a/pmat.py Wed May 07 12:19:36 2008 -0400 +++ b/pmat.py Wed May 07 13:07:33 2008 -0400 @@ -76,6 +76,31 @@ X.byteswap(True) return X +def load_pmat_as_array_dataset(fname): + import dataset,lookup_list + + #load the pmat as array + a=load_pmat_as_array(fname) + + #load the fieldnames + fieldnames = [] + fieldnamefile = os.path.join(fname+'.metadata','fieldnames') + if os.path.isfile(fieldnamefile): + f = open(fieldnamefile) + for row in f: + row = row.split() + if len(row)>0: + fieldnames.append(row[0]) + f.close() + else: + self.fieldnames = [ "field_"+str(i) for i in range(a.shape[1]) ] + + return dataset.ArrayDataSet(a,lookup_list.LookupList(fieldnames,[x for x in range(a.shape[1])])) + +def save_array_dataset_as_pmat(fname,ds): + ar=ds.data + save_array_as_pmat(fname,ar,ds.fieldNames()) + def save_array_as_pmat( fname, ar, fieldnames=[] ): s = file(fname,'wb') @@ -423,12 +448,23 @@ pmat.close() pmat = PMat( 'tmp.pmat', 'r' ) - print pmat - print pmat[:] + ar=load_pmat_as_array('tmp.pmat') + ds=load_pmat_as_array_dataset('tmp.pmat') + + print "PMat",pmat + print "PMat",pmat[:] + print "array",ar + print "ArrayDataSet",ds + for i in ds: + print i + save_array_dataset_as_pmat("tmp2.pmat",ds) + ds2=load_pmat_as_array_dataset('tmp2.pmat') + for i in ds2: + print i # print "+++ tmp.pmat contains: " # os.system( 'plearn vmat cat tmp.pmat' ) - - os.remove( 'tmp.pmat' ) - if os.path.exists( 'tmp.pmat.metadata' ): - import shutil - shutil.rmtree( 'tmp.pmat.metadata' ) + import shutil + for fname in ["tmp.pmat", "tmp2.pmat"]: + os.remove( fname ) + if os.path.exists( fname+'.metadata' ): + shutil.rmtree( fname+'.metadata' )