Python 如何向特定范围内的numpy数组添加标量?

Python 如何向特定范围内的numpy数组添加标量?,python,arrays,numpy,Python,Arrays,Numpy,是否有一种更简单、内存效率更高的方法可以单独在numpy中执行以下操作 将numpy导入为np ar=np.array(a[l:r]) ar+=c a=a[0:l]+ar.tolist()+a[r:] 它可能看起来很原始,但它涉及到获取给定数组的子数组副本,然后再准备两个相同的副本,以便在标量加法的基础上向左右方向追加。我希望能找到更优化的方法。我想要一个完全使用Python列表或NumPy数组的解决方案,但不能同时使用这两种格式,因为从一种格式转换为另一种格式(如上图所示)会在数据量巨大时造

是否有一种更简单、内存效率更高的方法可以单独在numpy中执行以下操作

将numpy导入为np
ar=np.array(a[l:r])
ar+=c
a=a[0:l]+ar.tolist()+a[r:]

它可能看起来很原始,但它涉及到获取给定数组的子数组副本,然后再准备两个相同的副本,以便在标量加法的基础上向左右方向追加。我希望能找到更优化的方法。我想要一个完全使用Python列表或NumPy数组的解决方案,但不能同时使用这两种格式,因为从一种格式转换为另一种格式(如上图所示)会在数据量巨大时造成严重的开销。

您只需按如下方式就地执行分配:

import numpy as np

a = np.array([1, 1, 1, 1, 1])
a[2:4] += 5
>>> a
array([1, 1, 6, 6, 1])

因此,您希望将
c
添加到
a
的一个片段中,以代替。。。
a[l:r]+=c是否适用于您的示例(假设
a
是一个NumPy数组)?是的。这就是我的想法。