I have the following numpy array
import numpy as np
X = np.array([[5.], [4.], [3.], [2.], [1.]])
I want to insert [6.]
at the beginning.
I've tried:
X = X.insert(X, 0)
how do I insert into X?
I have the following numpy array
import numpy as np
X = np.array([[5.], [4.], [3.], [2.], [1.]])
I want to insert [6.]
at the beginning.
I've tried:
X = X.insert(X, 0)
how do I insert into X?
I know this is a fairly old one, but a short solution is using numpy slicing tricks:
If you need to do it in a second dimension you can use np.c_.
I think this is the least cluttered version I can think of
You can try the following
Instead of inserting 6 to the existing X, let append 6 by X.
So, first argument
arr
is numpy array of scalar 6, second argument is your array to be added, and third is the place where we want to addI just wrote some code that does this operation ~100,000 times, so I needed to figure out the fastest way to do this. I'm not an expert in code efficiency by any means, but I could figure some things out by using the
%%timeit
magic function in a jupyter notebook.My findings:
np.concatenate(([number],array))
requires the least time. Let's call it 1x time.np.asarray([number] + list(array))
comes in at ~2x.np.r_[number,array]
is ~4x.np.insert(array,0,number)
appears to be the worst option here at 8x.I have no idea how this changes with the size of
array
(I used a shape (15,) array) and most of the options I suggested only work if you want to put the number at the beginning. However, since that's what the question is asking about, I figure this is a good place to make these comparisons.numpy has an
insert
function that's accesible vianp.insert
with documentation.You'll want to use it in this case like so:
the first argument
X
specifies the object to be inserted into.The second argument
0
specifies where.The third argument
6.
specifies what is to be inserted.The fourth argument
axis=0
specifies that the insertion should happen at position0
for every column. We could've chosen rows but your X is a columns vector, so I figured we'd stay consistent.