On Sun, Dec 5, 2010 at 10:56 PM, Wai Yip Tung <[email protected]> wrote: > I'm fairly new to numpy and I'm trying to figure out the right way to do > things. Continuing on my question about using recarray as a relation. I > have a recarray like this > > > In [339]: arr = np.array([ > .....: (1, 2.2, 0.0), > .....: (3, 4.5, 0.0) > .....: ], > .....: dtype=[ > .....: ('unit',int), > .....: ('price',float), > .....: ('amount',float), > .....: ] > .....: ) > > In [340]: data = arr.view(recarray) > > > One of the most common thing I want to do is to append rows to data. I > think concatenate() might be the method. But I get a problem: > > > In [342]: np.concatenate((data0,[1,9.0,9.0])) > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > > c:\Python26\Lib\site-packages\numpy\<ipython console> in <module>() > > TypeError: expected a readable buffer object > > > > The other thing I want to do is to calculate the column value. Right now > it can do great thing like > > > > In [343]: data.amount = data.unit * data.price > > > > But sometimes it may require me to add a new column not already exist, > e.g.: > > > In [344]: data.discount_price = data.price * 0.9 > > > How can I add a new column? I tried column_stack. But it give a similar > TypeError. I figure I need to first specify the type of the column. But I > don't know how. >
Check out numpy.lib.recfunctions I often have import numpy.lib.recfunctions as nprf Skipper _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
