我有一个长数组:
x= ([2, 5, 4, 7, ...])
为此,我需要将前 N
元素设置为 0
。所以对于 N = 2
,所需的输出将是:
x = ([0, 0, 4, 7, ...])
在 Python 中有没有一种简单的方法可以做到这一点?一些 numpy
函数?
最佳答案
纯 python :
x[:n] = [0] * n
使用 numpy:
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'], [], []]
关于python - 如何将数组的前 N 个元素设置为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31049544/