首页 > 解决方案 > 根据if条件将值插入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))

这没有用。我想知道我做错了什么?

标签: pythonnumpy

解决方案


您需要检查数组中的值是否为 0,而不是索引是否为 0。插入值时需要考虑对原始数组的更改。此外,您需要将返回的值从insertback 分配给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]

推荐阅读