[Numpy-discussion] Documentation for dtypes with named fields

Skipper Seabold jsseabold@gmail....
Tue Mar 16 08:10:14 CDT 2010

On Tue, Mar 16, 2010 at 8:47 AM, Sam Tygier
<Sam.Tygier@hep.manchester.ac.uk> wrote:
> Hello
> I can't find much documentation for using arrays where the dtype has named fields (is there a term for this sort of array). there is some in

Structured array (or record array if you make a record array -- the
difference is record array allows access to the fields through


There might be another page, but I can't find it right now.

> http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
> http://docs.scipy.org/doc/numpy/reference/generated/numpy.dtype.html
> but that's most creation.
> for example if i have
> a = zeros(5, dtype=[('a','f'), ('b','f'), ('c','i')])
> and fill it with values.
> if i want to fill a row, i can do
> a[0] = (0.1,0.2,3)
> but if i use a list it wont work
> a[0] = [0.1,0.2,3]
> is there an explanation of why?

Structured arrays expect tuples.

> now if i wanted to do some sort of conversion, eg multiply columns 'a' and 'b' by 10, is there a way to do
> a *= [10,10,1]
> like i would do with a if were a zeros((5,3)) array
> is
> a['a'] *= 10
> a['b'] *= 10
> the best method?

I think so.

> also whats the best way to take a slice of the columns? if i want just the 'a' and 'b' columns. if it were a 2d array i could do
> a[0:2]
> but
> a['a':'b']
> does not work. is there a way to do this?


Notice the list within a list notation.


More information about the NumPy-Discussion mailing list