Hi Pierre, Bingo ! That works. I finally coded like:
Stats = [(CatBase, round(stats.mean(Data.Ra), 5), round(stats.mean(Data.Dec), 5), len(Sep), round(stats.mean(Sep),4), round(stats.stdev(Sep),4),)] StatArray = np.array(Stats, dtype=([('Catalog', 'a15'), ('RaMean', 'f8'), ('DecMean', 'f8'), ('NStars', 'i4'), ('RMS', 'f8'), ('StdDev', 'f8')])) print StatArray if First: StatsAll = StatArray First = False else: StatsAll = np.vstack((StatsAll, StatArray)) My next problem deals with the writing of data to a file. I use the command: np.savetxt(Table, StatsAll, delimiter=' ', fmt=['%15s %.5f %.5f %5d %.4f %.4f']) which yields: Traceback (most recent call last): File "/Users/marquett/workspace/Distort/src/StatsSep.py", line 44, in <module> np.savetxt(Table, StatsAll, delimiter=' ', fmt=['%15s %.5f %.5f %5d %.4f %.4f']) File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/numpy/lib/npyio.py", line 979, in savetxt fh.write(asbytes(format % tuple(row) + newline)) TypeError: not enough arguments for format string I struggled with various unsuccessful fmt syntaxes, and the numpy doc is very discrete about that topic: fmt : string or sequence of strings A single format (%10.5f), a sequence of formats But I don't find this valid sequence nor an example... Cheers JB > > On Aug 31, 2011, at 12:20 PM, Jean-Baptiste Marquette wrote: > >> >> Hi Pierre, >> >> Thanks for the guess. Unfortunately, I got the same error: >> >> [('bs3000k.cat', 280.60341, -7.09118, 9480, 0.2057, 0.14)] >> Traceback (most recent call last): >> File "/Users/marquett/workspace/Distort/src/StatsSep.py", line 40, in >> <module> >> StatsAll = np.array(np.asarray(Stats), dtype=('a15, f8, f8, i4, f8, f8')) >> ValueError: could not convert string to float: bs3000k.cat > > Of course, silly me > > Your line 40 is actually >>>> StatsAll = np.array(np.asarray(Stats), dtype=('a15, f8, f8, i4, f8, f8')) > > With np.asarray(Stats), you're trying to load Stats as an array using a dtype > of float by default. Of course, np.asarray is choking on the first element. > > So, try to use instead >>>> StatsAll = np.array(Stats, dtype=('a15, f8, f8, i4, f8, f8')) > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion