I have an numpy array of complex numbers. So I want to insert zero at start of the array,
and shift the rest of the array one place forward.
example:
Simplest way:
a = np.array([1 + 2j, 5 + 7j])
a = np.insert(a, 0, 0)
Then:
>>> a
array([ 0.+0.j, 1.+2.j, 5.+7.j])
Note that this creates a new array, it does not actually insert the 0
into the original array.
There are several alternatives to np.insert, all of which also create a new array:
In [377]: a
Out[377]: array([ 1.+2.j, 5.+7.j])
In [378]: np.r_[0, a]
Out[378]: array([ 0.+0.j, 1.+2.j, 5.+7.j])
In [379]: np.append(0, a)
Out[379]: array([ 0.+0.j, 1.+2.j, 5.+7.j])
In [380]: np.concatenate([[0], a])
Out[380]: array([ 0.+0.j, 1.+2.j, 5.+7.j])
In [381]: np.hstack([0, a])
Out[381]: array([ 0.+0.j, 1.+2.j, 5.+7.j])
In [382]: np.insert(a, 0, 0)
Out[382]: array([ 0.+0.j, 1.+2.j, 5.+7.j])