Numpy:替换数组前半部分中的每个 n 元素 [英] Numpy: Replace every n element in the first half of an array
本文介绍了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屋!
查看全文