I have a record array r and I want to add a new field to it. I have
been looking at setfield but I am not sure how to use it for this
purpose. Eg
# r is some npy record array
N = len(r)
x = npy.zeros(N)
# add array of floats x to r with dtype name 'jdh' and type '
John Hunter wrote:
I have a record array r and I want to add a new field to it. I have been looking at setfield but I am not sure how to use it for this purpose. Eg
# r is some npy record array N = len(r) x = npy.zeros(N) # add array of floats x to r with dtype name 'jdh' and type '
Any suggestions?
Here is the straightforward way:
In [15]: import numpy as np
In [16]: dt = np.dtype([('foo', int), ('bar', float)])
In [17]: r = np.zeros((3,3), dtype=dt)
In [18]: r
Out[18]:
array([[(0, 0.0), (0, 0.0), (0, 0.0)],
[(0, 0.0), (0, 0.0), (0, 0.0)],
[(0, 0.0), (0, 0.0), (0, 0.0)]],
dtype=[('foo', '
On 9/26/07, Robert Kern
Here is the straightforward way:
In [15]: import numpy as np
In [16]: dt = np.dtype([('foo', int), ('bar', float)])
In [17]: r = np.zeros((3,3), dtype=dt)
Here is a (hopefully) simple question. If I create an array like
this, how can I efficiently convert it to a record array which lets me
do r.attr in addition to r['attr']. I'm pretty addicted to the former
syntax.
In [114]: dt = np.dtype([('foo', int), ('bar', float)])
In [115]: r = np.zeros((3,3), dtype=dt)
In [116]: r.dtype
Out[116]: dtype([('foo', '
Try
r = r.view(numpy.recarray)
barry
On 10/5/07, John Hunter
On 9/26/07, Robert Kern
wrote: Here is the straightforward way:
In [15]: import numpy as np
In [16]: dt = np.dtype([('foo', int), ('bar', float)])
In [17]: r = np.zeros((3,3), dtype=dt)
Here is a (hopefully) simple question. If I create an array like this, how can I efficiently convert it to a record array which lets me do r.attr in addition to r['attr']. I'm pretty addicted to the former syntax.
In [114]: dt = np.dtype([('foo', int), ('bar', float)])
In [115]: r = np.zeros((3,3), dtype=dt)
In [116]: r.dtype Out[116]: dtype([('foo', '
In [117]: r['foo'] Out[117]: array([[0, 0, 0], [0, 0, 0], [0, 0, 0]])
In [118]: r.foo ------------------------------------------------------------ Traceback (most recent call last): File "<ipython console>", line 1, in ? AttributeError: 'numpy.ndarray' object has no attribute 'foo'
Thanks, JDH _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
John Hunter wrote:
On 9/26/07, Robert Kern
wrote: Here is the straightforward way:
In [15]: import numpy as np
In [16]: dt = np.dtype([('foo', int), ('bar', float)])
In [17]: r = np.zeros((3,3), dtype=dt)
Here is a (hopefully) simple question. If I create an array like this, how can I efficiently convert it to a record array which lets me do r.attr in addition to r['attr']. I'm pretty addicted to the former syntax.
In [32]: r2 = r.view(np.recarray) In [33]: r2.foo Out[33]: array([[0, 0, 0], [0, 0, 0], [0, 0, 0]]) -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco
participants (3)
-
Barry Wark
-
John Hunter
-
Robert Kern