Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- x = np.array(zip((1, 2), (3., 4.)), dtype=[('i', 'i4'), ('f', 'f4')])
- y = np.array(zip(('a', 'b')), dtype=[('s', 'a10')])
- z = np.hstack((x, y))
- ---------------------------------------------------------------------------
- TypeError Traceback (most recent call last)
- <ipython-input-7-def477e6c8bf> in <module>()
- ----> 1 z = np.hstack((x, y))
- TypeError: invalid type promotion
- >>> import numpy.lib.recfunctions as nlr
- >>> x = np.array(zip((1, 2), (3., 4.)), dtype=[('i', 'i4'), ('f', 'f4')])
- >>> y = np.array(zip(('a', 'b')), dtype=[('s', 'a10')])
- >>> x
- array([(1, 3.0), (2, 4.0)],
- dtype=[('i', '<i4'), ('f', '<f4')])
- >>> y
- array([('a',), ('b',)],
- dtype=[('s', '|S10')])
- >>> z = nlr.merge_arrays([x, y], flatten=True)
- >>> z
- array([(1, 3.0, 'a'), (2, 4.0, 'b')],
- dtype=[('i', '<i4'), ('f', '<f4'), ('s', '|S10')])
- import numpy
- from numpy.lib.recfunctions import merge_arrays
- from itertools import chain
- a = numpy.empty(3, [("col1", int), ("col2", float)])
- b = numpy.empty(3, [("col3", int), ("col4", "U1")])
- %timeit [i for i in (row for row in merge_arrays([a,b], flatten=True))]
- 52.9 µs ± 2 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
- %timeit [i for i in (row for row in (chain(i,k) for i,k in zip(a,b)))]
- 3.47 µs ± 52 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Add Comment
Please, Sign In to add comment