Canuck Canuck - 1 year ago 109
Python Question

Quick numpy array extension

I wonder if there is a trick to extending a numpy array with consecutive
numbers in between each original values, up to a user controlled default length. Perhaps there is already a built-in function that turns x into y



Here the length between each element that I added was three. Speed is of the essence here. I need something like this for my column data to work in creating a sparse

Also, if I have an array such as


is there a quick way to extend each element an arbitrary amount of
times, lets say 4 for example:


Answer Source

Broadcasted addition is probably the fastest

In [241]: (x[:,None]+np.arange(4)).ravel()
Out[241]: array([ 4,  5,  6,  7,  8,  9, 10, 11,  4,  5,  6,  7, 10, 11, 12, 13])

It gets trickier if adding different amounts for each sublist.

repeat is useful:

In [242]: np.repeat(np.array([0,1]),[3,4])
Out[242]: array([0, 0, 0, 1, 1, 1, 1])

tile is another good tool.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download