我有一个长阵列:
x= ([2, 5, 4, 7, ...])
我需要将第一个N
元素设置为0
。因此对于N = 2
,所需的输出将是:
x = ([0, 0, 4, 7, ...])
在Python中有一种简单的方法吗?一些numpy
功能?
答案 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