Chi*_*ion 5 python numpy python-2.7
如果我有一个 numpy 数组,并且想要将数组前半部分中的每个第 n 个元素替换为 0(后半部分没有变化),我怎样才能有效地做到这一点?现在我的代码不够高效: 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.])
Run Code Online (Sandbox Code Playgroud)
另一个例子:
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.])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6159 次 |
| 最近记录: |