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

2024-10-01 22:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一长串:

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

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

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

在Python中有一种简单的方法可以做到这一点吗?一些功能?


Tags: 方法功能元素一长串
2条回答

纯Python:

x[:n] = [0] * n

有了纽比:

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

还要注意,如果x是一个python列表(而不是numpy数组),那么x[:n] = 0不工作。

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

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

只需明确设置它们:

x[0:2] = 0

相关问题 更多 >

    热门问题