如何将数组的前N个元素设置为零?

时间:2015-06-25 11:50:14

标签: python arrays numpy

我有一个长阵列:

x= ([2, 5, 4, 7, ...])

我需要将第一个N元素设置为0。因此对于N = 2,所需的输出将是:

x = ([0, 0, 4, 7, ...])

在Python中有一种简单的方法吗?一些numpy功能?

2 个答案:

答案 0 :(得分:20)

Pure python:

x[:n] = [0] * n

与numpy:

y = numpy.array(x)
y[:n] = 0

另请注意,如果x[:n] = 0是python列表(而不是numpy数组),x

[{some object here}] * n用于任何可变的内容也是一个坏主意,因为该列表不包含n个不同的对象,但是n引用同一个对象:

>>> a = [[],[],[],[]]
>>> a[0:2] = [["a"]] * 2
>>> a
[['a'], ['a'], [], []]
>>> a[0].append("b")
>>> a
[['a', 'b'], ['a', 'b'], [], []]

答案 1 :(得分:1)

只需明确设置它们:

x[0:2] = 0