From: <jd...@us...> - 2007-09-05 15:23:31
|
Revision: 3788 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3788&view=rev Author: jdh2358 Date: 2007-09-05 08:23:29 -0700 (Wed, 05 Sep 2007) Log Message: ----------- fixed a load numpification bug Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2007-09-05 15:23:09 UTC (rev 3787) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2007-09-05 15:23:29 UTC (rev 3788) @@ -1252,7 +1252,7 @@ r,c = X.shape if r==1 or c==1: X.shape = max(r,c), - if unpack: X.transpose() + if unpack: return X.transpose() return X def csv2rec(fname, comments='#', skiprows=0, checkrows=5, delimiter=',', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pki...@us...> - 2007-09-05 21:50:07
|
Revision: 3794 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3794&view=rev Author: pkienzle Date: 2007-09-05 14:50:01 -0700 (Wed, 05 Sep 2007) Log Message: ----------- Fix get_xyz_where() typo so spy_demos works again Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2007-09-05 21:40:41 UTC (rev 3793) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2007-09-05 21:50:01 UTC (rev 3794) @@ -949,7 +949,7 @@ where x and y are the indices into Z and z are the values of Z at those indices. x,y,z are 1D arrays """ - X,Y = npy.indices(z.shape) + X,Y = npy.indices(Z.shape) return X[Cond], Y[Cond], Z[Cond] def get_sparse_matrix(M,N,frac=0.1): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2007-11-09 21:09:07
|
Revision: 4198 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4198&view=rev Author: mdboom Date: 2007-11-09 13:09:04 -0800 (Fri, 09 Nov 2007) Log Message: ----------- Bugfix: [ 1745650 ] patch for mlab.py's comment handling Comment handling had the potential to lose the last character of a line. Slightly different from user submitted patch -- uses split() instead of three lines of Python code. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-09 20:59:47 UTC (rev 4197) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-09 21:09:04 UTC (rev 4198) @@ -1265,7 +1265,7 @@ converterseq = None for i,line in enumerate(fh): if i<skiprows: continue - line = line[:line.find(comments)].strip() + line = line.split(comments, 1).strip() if not len(line): continue if converterseq is None: converterseq = [converters.get(j,float) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2007-11-09 21:29:01
|
Revision: 4200 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4200&view=rev Author: mdboom Date: 2007-11-09 13:28:58 -0800 (Fri, 09 Nov 2007) Log Message: ----------- Oops in last commit. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-09 21:27:30 UTC (rev 4199) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-09 21:28:58 UTC (rev 4200) @@ -1265,7 +1265,7 @@ converterseq = None for i,line in enumerate(fh): if i<skiprows: continue - line = line.split(comments, 1).strip() + line = line.split(comments, 1)[0].strip() if not len(line): continue if converterseq is None: converterseq = [converters.get(j,float) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2007-11-14 14:00:59
|
Revision: 4268 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4268&view=rev Author: mdboom Date: 2007-11-14 06:00:56 -0800 (Wed, 14 Nov 2007) Log Message: ----------- Fix bug in specgram. (Thanks Glen W. Mabey!) Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-14 13:58:08 UTC (rev 4267) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-14 14:00:56 UTC (rev 4268) @@ -353,7 +353,7 @@ # zero pad x up to NFFT if it is shorter than NFFT if len(x)<NFFT: n = len(x) - x = resize(x, (NFFT,)) + x = npy.resize(x, (NFFT,)) x[n:] = 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2007-11-16 15:58:28
|
Revision: 4336 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4336&view=rev Author: jdh2358 Date: 2007-11-16 07:58:05 -0800 (Fri, 16 Nov 2007) Log Message: ----------- fixed bug in polyfit, polyval deprecation Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-16 15:56:34 UTC (rev 4335) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2007-11-16 15:58:05 UTC (rev 4336) @@ -442,6 +442,7 @@ kw = dict(rowvar=False) return npy.corrcoef(*args, **kw) + def polyfit(*args, **kwargs): """ def polyfit(x,y,N) @@ -482,7 +483,7 @@ """ warnings.warn("use numpy.poyfit", DeprecationWarning) - return npy.polyfit(*args, **kw) + return npy.polyfit(*args, **kwargs) @@ -504,9 +505,8 @@ """ warnings.warn("use numpy.polyval", DeprecationWarning) - return npy.polyval(*args, **kw) + return npy.polyval(*args, **kwargs) - def vander(*args, **kwargs): """ X = vander(x,N=None) @@ -2262,7 +2262,8 @@ return x class FormatInt(FormatObj): - pass + def toval(self, x): + return x class FormatPercent(FormatFloat): def __init__(self, precision=4): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2007-12-03 15:23:44
|
Revision: 4560 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4560&view=rev Author: jdh2358 Date: 2007-12-03 07:23:32 -0800 (Mon, 03 Dec 2007) Log Message: ----------- fixed a gtk import else block in mlab Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2007-12-03 14:41:11 UTC (rev 4559) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2007-12-03 15:23:32 UTC (rev 4560) @@ -2441,9 +2441,9 @@ pass except RuntimeError: pass +else: - def gtkformat_factory(format, colnum): """ copy the format, perform any overrides, and attach an gtk style attrs This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2008-01-18 18:25:30
|
Revision: 4880 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4880&view=rev Author: sameerd Date: 2008-01-18 10:21:14 -0800 (Fri, 18 Jan 2008) Log Message: ----------- rec_join now returns an array that has its rows in the same order as the first record array passed to it. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-01-18 17:59:51 UTC (rev 4879) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-01-18 18:21:14 UTC (rev 4880) @@ -1990,11 +1990,6 @@ def makekey(row): return tuple([row[name] for name in key]) - - names = list(r1.dtype.names) + [name for name in r2.dtype.names if name not in set(r1.dtype.names)] - - - r1d = dict([(makekey(row),i) for i,row in enumerate(r1)]) r2d = dict([(makekey(row),i) for i,row in enumerate(r2)]) @@ -2003,12 +1998,14 @@ keys = r1keys & r2keys - r1ind = [r1d[k] for k in keys] - r2ind = [r2d[k] for k in keys] + r1ind = npy.array([r1d[k] for k in keys]) + r2ind = npy.array([r2d[k] for k in keys]) + # Make sure that the output rows have the same relative order as r1 + sortind = r1ind.argsort() - r1 = r1[r1ind] - r2 = r2[r2ind] + r1 = r1[r1ind[sortind]] + r2 = r2[r2ind[sortind]] r2 = rec_drop_fields(r2, r1.dtype.names) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2008-02-29 13:13:30
|
Revision: 4990 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4990&view=rev Author: mdboom Date: 2008-02-29 05:13:27 -0800 (Fri, 29 Feb 2008) Log Message: ----------- Removing duplicate code from a faulty merge. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-02-25 20:27:51 UTC (rev 4989) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-02-29 13:13:27 UTC (rev 4990) @@ -46,7 +46,6 @@ = record array helper functions = * rec2txt : pretty print a record array - * rec2txt : pretty print a record array * rec2csv : store record array in CSV file * csv2rec : import record array from CSV file with type inspection * rec_append_field : add a field/array to record array @@ -2114,139 +2113,6 @@ return newrec.view(npy.recarray) -def rec_groupby(r, groupby, stats): - """ - r is a numpy record array - - groupby is a sequence of record array attribute names that - together form the grouping key. eg ('date', 'productcode') - - stats is a sequence of (attr, func, outname) which will call x = - func(attr) and assign x to the record array output with attribute - outname. - Eg, stats = ( ('sales', len, 'numsales'), ('sales', npy.mean, 'avgsale') ) - - return record array has dtype names for each attribute name in in - the the 'groupby' argument, with the associated group values, and - for each outname name in the stats argument, with the associated - stat summary output - """ - # build a dictionary from groupby keys-> list of indices into r with - # those keys - rowd = dict() - for i, row in enumerate(r): - key = tuple([row[attr] for attr in groupby]) - rowd.setdefault(key, []).append(i) - - # sort the output by groupby keys - keys = rowd.keys() - keys.sort() - - rows = [] - for key in keys: - row = list(key) - # get the indices for this groupby key - ind = rowd[key] - thisr = r[ind] - # call each stat function for this groupby slice - row.extend([func(thisr[attr]) for attr, func, outname in stats]) - rows.append(row) - - # build the output record array with groupby and outname attributes - attrs, funcs, outnames = zip(*stats) - names = list(groupby) - names.extend(outnames) - return npy.rec.fromrecords(rows, names=names) - - - -def rec_summarize(r, summaryfuncs): - """ - r is a numpy record array - - summaryfuncs is a list of (attr, func, outname) which will - apply codefunc to the the array r[attr] and assign the output - to a new attribute name outname. The returned record array is - identical to r, with extra arrays for each element in summaryfuncs - """ - - names = list(r.dtype.names) - arrays = [r[name] for name in names] - - for attr, func, outname in summaryfuncs: - names.append(outname) - arrays.append(npy.asarray(func(r[attr]))) - - return npy.rec.fromarrays(arrays, names=names) - -def rec_join(key, r1, r2): - """ - join record arrays r1 and r2 on key; key is a tuple of field - names. if r1 and r2 have equal values on all the keys in the key - tuple, then their fields will be merged into a new record array - containing the intersection of the fields of r1 and r2 - """ - - for name in key: - if name not in r1.dtype.names: - raise ValueError('r1 does not have key field %s'%name) - if name not in r2.dtype.names: - raise ValueError('r2 does not have key field %s'%name) - - def makekey(row): - return tuple([row[name] for name in key]) - - r1d = dict([(makekey(row),i) for i,row in enumerate(r1)]) - r2d = dict([(makekey(row),i) for i,row in enumerate(r2)]) - - r1keys = set(r1d.keys()) - r2keys = set(r2d.keys()) - - keys = r1keys & r2keys - - r1ind = npy.array([r1d[k] for k in keys]) - r2ind = npy.array([r2d[k] for k in keys]) - - # Make sure that the output rows have the same relative order as r1 - sortind = r1ind.argsort() - - r1 = r1[r1ind[sortind]] - r2 = r2[r2ind[sortind]] - - r2 = rec_drop_fields(r2, r1.dtype.names) - - - def key_desc(name): - 'if name is a string key, use the larger size of r1 or r2 before merging' - dt1 = r1.dtype[name] - if dt1.type != npy.string_: - return (name, dt1.descr[0][1]) - - dt2 = r1.dtype[name] - assert dt2==dt1 - if dt1.num>dt2.num: - return (name, dt1.descr[0][1]) - else: - return (name, dt2.descr[0][1]) - - - - keydesc = [key_desc(name) for name in key] - - newdtype = npy.dtype(keydesc + - [desc for desc in r1.dtype.descr if desc[0] not in key ] + - [desc for desc in r2.dtype.descr if desc[0] not in key ] ) - - - newrec = npy.empty(len(r1), dtype=newdtype) - for field in r1.dtype.names: - newrec[field] = r1[field] - - for field in r2.dtype.names: - newrec[field] = r2[field] - - return newrec.view(npy.recarray) - def csv2rec(fname, comments='#', skiprows=0, checkrows=0, delimiter=',', converterd=None, names=None, missing=None): """ @@ -2633,6 +2499,7 @@ return text + def rec2csv(r, fname, delimiter=',', formatd=None): """ Save the data from numpy record array r into a comma/space/tab This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2008-05-21 16:09:35
|
Revision: 5212 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5212&view=rev Author: sameerd Date: 2008-05-21 09:08:26 -0700 (Wed, 21 May 2008) Log Message: ----------- Record array append multiple fields Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-05-21 13:06:51 UTC (rev 5211) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-05-21 16:08:26 UTC (rev 5212) @@ -1953,14 +1953,39 @@ def rec_append_field(rec, name, arr, dtype=None): 'return a new record array with field name populated with data from array arr' - arr = np.asarray(arr) - if dtype is None: - dtype = arr.dtype - newdtype = np.dtype(rec.dtype.descr + [(name, dtype)]) + warnings.warn("use rec_append_fields", DeprecationWarning) + return rec_append_fields(rec, name, arr, dtype) + +def rec_append_fields(rec, names, arrs, dtypes=None): + """ + return a new record array with field names populated with data + from arrays in arrs. If appending a single field then names, arrs + and dtypes do not have to be lists. They can just be the values themselves. + """ + if (not cbook.is_string_like(names) and cbook.iterable(names) \ + and len(names) and cbook.is_string_like(names[0])): + if len(names) != len(arrs): + raise ValueError, "number of arrays do not match number of names" + else: # we have only 1 name and 1 array + names = [names] + arrs = [arrs] + arrs = map(np.asarray, arrs) + if dtypes is None: + dtypes = [a.dtype for a in arrs] + elif not cbook.iterable(dtypes): + dtypes = [dtypes] + if len(arrs) != len(dtypes): + if len(dtypes) == 1: + dtypes = dtypes * len(arrs) + else: + raise ValueError, "dtypes must be None, a single dtype or a list" + + newdtype = np.dtype(rec.dtype.descr + zip(names, dtypes)) newrec = np.empty(rec.shape, dtype=newdtype) for field in rec.dtype.fields: newrec[field] = rec[field] - newrec[name] = arr + for name, arr in zip(names, arrs): + newrec[name] = arr return newrec.view(np.recarray) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-06-02 14:55:00
|
Revision: 5359 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5359&view=rev Author: jdh2358 Date: 2008-06-02 07:54:41 -0700 (Mon, 02 Jun 2008) Log Message: ----------- added dtype patch from sf 1980695 for mlab.load Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-06-02 14:53:20 UTC (rev 5358) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-06-02 14:54:41 UTC (rev 5359) @@ -1200,7 +1200,7 @@ def load(fname,comments='#',delimiter=None, converters=None,skiprows=0, - usecols=None, unpack=False): + usecols=None, unpack=False, dtype=np.float_): """ Load ASCII data from fname into an array and return the array. @@ -1230,8 +1230,9 @@ a separator. converters, if not None, is a dictionary mapping column number to - a function that will convert that column to a float. Eg, if - column 0 is a date string: converters={0:datestr2num} + a function that will convert that column to a float (or the optional + dtype if specified). Eg, if column 0 is a date string: + converters={0:datestr2num} skiprows is the number of rows from the top to skip @@ -1245,6 +1246,8 @@ t,y = load('test.dat', unpack=True) # for two column data x,y,z = load('somefile.dat', usecols=(3,5,7), unpack=True) + dtype, the array will have this dtype. default: numpy.float_ + See examples/load_demo.py which exeercises many of these options. """ @@ -1270,7 +1273,7 @@ converterseq = [converters.get(j,float) for j,val in enumerate(splitfunc(line))] if usecols is not None: - vals = line.split(delimiter) + vals = splitfunc(line) row = [converterseq[j](vals[j]) for j in usecols] else: row = [converterseq[j](val) @@ -1278,7 +1281,7 @@ thisLen = len(row) X.append(row) - X = np.array(X, np.float_) + X = np.array(X, dtype) r,c = X.shape if r==1 or c==1: X.shape = max(r,c), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ds...@us...> - 2008-06-22 09:09:40
|
Revision: 5624 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5624&view=rev Author: dsdale Date: 2008-06-21 06:28:57 -0700 (Sat, 21 Jun 2008) Log Message: ----------- improve docstring for mlab.load to clarify for bugreport 1901536 Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-06-21 13:09:07 UTC (rev 5623) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-06-21 13:28:57 UTC (rev 5624) @@ -1237,14 +1237,14 @@ skiprows is the number of rows from the top to skip usecols, if not None, is a sequence of integer column indexes to - extract where 0 is the first column, eg usecols=(1,4,5) to extract + extract where 0 is the first column, eg usecols=[1,4,5] to extract just the 2nd, 5th and 6th columns unpack, if True, will transpose the matrix allowing you to unpack into named arguments on the left hand side t,y = load('test.dat', unpack=True) # for two column data - x,y,z = load('somefile.dat', usecols=(3,5,7), unpack=True) + x,y,z = load('somefile.dat', usecols=[3,5,7], unpack=True) dtype, the array will have this dtype. default: numpy.float_ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-06-24 16:28:46
|
Revision: 5657 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5657&view=rev Author: jdh2358 Date: 2008-06-24 09:28:10 -0700 (Tue, 24 Jun 2008) Log Message: ----------- support string names for csv2rec Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-06-24 14:37:41 UTC (rev 5656) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-06-24 16:28:10 UTC (rev 5657) @@ -2381,6 +2381,10 @@ names.append(item) seen[item] = cnt+1 + else: + if cbook.is_string_like(names): + names = [n.strip() for n in names.split(',')] + # get the converter functions by inspecting checkrows converters = get_converters(reader) if converters is None: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |