我有一个Numpy数组和一个索引列表,以及一个数组,其中包含需要进入这些索引的值。在
我所知道的最快的方法是:
In [1]: a1 = np.array([1,2,3,4,5,6,7])
In [2]: x = np.array([10,11,12])
In [3]: ind = np.array([2,4,5])
In [4]: a2 = np.copy(a1)
In [5]: a2.put(ind,x)
In [6]: a2
Out[6]: array([ 1, 2, 10, 4, 11, 12, 7])
注意,我必须复制a1
。我使用这个函数的目的是包装一个以数组作为输入的函数,这样我就可以把它交给一个优化器,它将改变这些元素的一些。在
所以,理想情况下,我希望有一个东西,它可以在一行中返回原始文件的修改副本,工作方式如下:
^{pr2}$原因是我需要这样应用它:
def somefunction(a):
....
costfun = lambda x: somefunction(np.replace(a1, ind, x))
{{cdx}的函数{cdx}只有{cdx}是常数
我目前的后备解决方案是自己定义一个小函数:
def replace(a1, ind, x):
a2 = np.copy(a1)
a2.put(ind,x)
return(a2)
……但这对我来说不太优雅。在
=>;是否有方法将其转换为lambda函数?在
你要的是一个线性函数,这里有一个使用稀疏矩阵的^{} -
相关问题 更多 >
编程相关推荐