On 9/21/2010 11:03 PM, gburde...@gmail.com wrote:
Given

m=numpy.array([[1, 2, 3]])

I want to obtain

array([[1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]])

One way I've found to do this is:

numpy.reshape(numpy.tile(m,(4,1)),(12,1),'f').T

Another way is:

numpy.reshape(numpy.tile(m,(4,1)).flatten(1),(1,12))

Is there a simpler way to do this, without having to go jump through
so many hoops?

With a Python list
>>> l = []
>>> for rep in [[i]*4 for i in [1,2,3]]:
        l.extend(rep)
        
>>> l
[1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]

or
>>> list(chain(*[[i]*4 for i in [1,2,3]]))
[1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]

Can you adapt that with numpy.array instead of list? Might be slower though
--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to