Python 如何向特定范围内的numpy数组添加标量?
是否有一种更简单、内存效率更高的方法可以单独在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导入为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数组)?是的。这就是我的想法。