Numpy:替换数组前半部分中的每个 n 元素 [英] Numpy: Replace every n element in the first half of an array

查看:52
本文介绍了Numpy:替换数组前半部分中的每个 n 元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有一个 numpy 数组并且想将数组前半部分中的每个第 n 个元素替换为 0(后半部分没有变化),我该如何有效地做到这一点?现在我的代码不够高效:对于 xrange(1,half,n) 中的 i:s[i] = 0

If I have a numpy array and want to replace every nth element to 0 in the first half of the array( no change in the second half), how can I do this efficiently? Now my code is not efficient enough: for i in xrange(1,half,n): s[i] = 0

推荐答案

只需使用 a[:a.size//2:n] = 0.例如:

a = np.ones(10)
a[:a.size//2:2] = 0
a
array([ 0.,  1.,  0.,  1.,  0.,  1.,  1.,  1.,  1.,  1.])

另一个例子:

a = np.ones(20)
n = 3
a[:a.size//2:n] = 0

a
array([ 0.,  1.,  1.,  0.,  1.,  1.,  0.,  1.,  1.,  0.,  1.,  1.,  1.,
    1.,  1.,  1.,  1.,  1.,  1.,  1.])

这篇关于Numpy:替换数组前半部分中的每个 n 元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆