python - 根据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))
这没有用。我想知道我做错了什么?
解决方案
您需要检查数组中的值是否为 0,而不是索引是否为 0。插入值时需要考虑对原始数组的更改。此外,您需要将返回的值从insert
back 分配给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]
推荐阅读
- javascript - 在外包导航上引导 js-scroll-trigger
- android - 如何在 Mockito3.x 中使用 PowerMock?
- assembly - 原始计算器(+、-、*、/)。添加以十六进制表示法工作的能力
- jquery - 在控制器中点击 url 时出现 ajax 错误
- reactjs - formik-material-ui 不适用于 TogglleButtonGroup 组件
- java - java中的最佳验证结构
- c# - Polly Retry 总是抛出 System.AggregateException 而不是自定义异常
- rxjs - 使用两个传入的可观察流之一以角度过滤数据
- c++ - 显式指定的模板参数包
- sql - VBA 脚本中的多个 case 语句