Greetings,
Is there a particular reason why a list of lists can't be passed in to create a
recarray given a particular dtype?
A list of tuples works fine. I keep getting bitten by this and was thinking it
should be an easy check/convert for an allowance for a row to be a list _or_ a
tuple?
Here's a session:
~~~~~~~~~~
In [2]: import numpy as np
In [3]: dt = np.dtype({'names':['a', 'b', 'c'], 'formats':[float]*3})
In [4]: dt
Out[4]: dtype([('a', '<f8'), ('b', '<f8'), ('c', '<f8')])
In [5]: rows = [[1,2,3],[2,3,4],[3,4,5]]
In [6]: ary = np.array(rows, dtype=dt)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/Users/travis/git/trading/<ipython-input-6-b69b5c361254> in <module>()
----> 1 ary = np.array(rows, dtype=dt)
TypeError: expected a readable buffer object
In [7]: rows2 = [tuple(row) for row in rows]
In [8]: ary = np.array(rows2, dtype=dt)
In [9]: ary
Out[9]:
array([(1.0, 2.0, 3.0), (2.0, 3.0, 4.0), (3.0, 4.0, 5.0)],
dtype=[('a', '<f8'), ('b', '<f8'), ('c', '<f8')])
~~~~~~~~~~
Thoughts?
Best,
Travis
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion