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

标签 python arrays numpy

我有一个长数组:

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/

相关文章:

python - Cython:了解 html 注释文件必须说的内容?

jquery - 将 JSON 对象从 Python 脚本发送到 jQuery?

javascript - 在 Javascript 中创建一个标识符为 "name"的数组表现得像字符串,为什么?

python - 我如何使用 numpy longdouble 数据类型?

python - numpy memmap内存使用-想要迭代一次

arrays - 快速从 TableView 列表中删除多个项目

python - Doctests 在 C 扩展和 Python3 上因 UnicodeDecodeError 而失败

python - Bs4 保存不包括一个 child 的列表

python - if 语句范围内的值不打印(Python 中的 Runge-Kutta 四阶)

javascript - 将 TensorFlow 中的张量值转换为常规 Javascript 数组