是否有一种更简单,内存更有效的方法可以单独在numpy中执行以下操作。
import numpy as np
ar = np.array(a[l:r])
ar += c
a = a[0:l] + ar.tolist() + a[r:]
它可能看起来很原始,但它涉及获取给定数组的子数组副本,然后准备两个相同的副本,除了标量添加外,还可以在左右方向附加。我希望找到一些更优化的方法来做到这一点。我想要一个完全在Python列表或NumPy数组中的解决方案,但不能同时从一种形式转换到另一种形式,如上所示,当数据量巨大时会导致严重的开销。
答案 0 :(得分:17)
您可以按照以下方式在内部进行分配:
import numpy as np
a = np.array([1, 1, 1, 1, 1])
a[2:4] += 5
>>> a
array([1, 1, 6, 6, 1])