python, numpy; How to insert element at the start of an array

前端 未结 5 1699
梦毁少年i
梦毁少年i 2021-02-12 11:27

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:



        
5条回答
  •  被撕碎了的回忆
    2021-02-12 11:32

    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])
    

提交回复
热议问题