NumPy:如何最有效/习惯地在索引后为数组中的所有项目添加值?



我想在某个索引之后为一维数组的所有项目添加一个值。

例如,我的原始数组如下所示:

[0, 1, 2, 3, 4, 5, 6]

我想在索引 1 之后的所有项目中添加 2,最终得到以下结果数组:

[0, 1, 2, 4, 5, 6, 7]

就性能和使用"惯用"Python/NumPy(即不使用循环(而言,最有效的方法是什么?似乎列表理解不是最好的方法,因为我正在处理 NumPy 数组——我的假设是有一种聪明的方法来索引数组,也可能性能更高。

以下是我使用列表理解所做的事情:

ary = np.array([0, 1, 2, 3, 4, 5, 6])
ix = 3
ary[ix:] = [x + 1 for x in ary[ix:]]

有没有更好的方法可以做到这一点,或者这已经足够好了?

要在索引ix处和之后ary数组的所有元素添加value

ary[ix:] += value

最新更新