Python 基于if条件将值插入numpy数组

Python 基于if条件将值插入numpy数组,python,numpy,Python,Numpy,假设我有以下数组: a = np.array([1,0,2,3,0,4,5,0]) 对于每个零,我希望复制一个零,并将其添加到数组中,以便获得: np.array([1,0,0,2,3,0,0,4,5,0,0]) 因此,我做了以下工作: for i in range(len(a)): if i-1==0 or i==0: print(np.insert(a,i,0)) 这是行不通的。我想知道我做错了什么?您需要检查数组中的值是否为0,而不是索引是否为0。当插入值时,

假设我有以下数组:

a = np.array([1,0,2,3,0,4,5,0])
对于每个零,我希望复制一个零,并将其添加到数组中,以便获得:

np.array([1,0,0,2,3,0,0,4,5,0,0])
因此,我做了以下工作:

for i in range(len(a)):
    if i-1==0 or i==0:
        print(np.insert(a,i,0))

这是行不通的。我想知道我做错了什么?

您需要检查数组中的值是否为0,而不是索引是否为0。当插入值时,需要考虑对原始数组的更改。此外,您需要将
insert
返回的值分配回
a

a = np.array([1, 0, 2, 3, 0, 4, 5, 0])
    i = 0
    while i < len(a):
        if a[i] == 0:
            a = np.insert(a, i, 0)
            i += 1
        i += 1

print(a) # [1 0 0 2 3 0 0 4 5 0 0]
a=np.array([1,0,2,3,0,4,5,0])
i=0
而我