我来自java背景,对numpy和pandas不太熟悉。 我想把下面的伪代码翻译成python。在
theta[0...D] - numpy
input[1...D][0...N-1] - Pandas data frame
伪代码:
^{pr2}$实施:
class simulator:
theta = np.array([])
stddev = 0
def __init__(self, v_coefficents, v_stddev):
self.theta = v_coefficents
self.stddev = v_stddev
def sim( self, input ):
mean = self.theta[0]
D = input.shape[0]
N = input.shape[1]
for index, row in input.iterrows():
mean = self.theta[0]
for i in range(D):
mean += self.theta[i+1] *row['y']
我关心的是最后一行代码中的迭代:
mean += self.theta[i+1] *row['y']
。在
因为您使用的是NumPy,所以我建议将pandas dataframe提取为一个数组,然后我们就可以使用}的提取版本作为数组。在
theta
和{因此,从一开始,我们将得到数组-
那么,伪代码的翻译是-
^{pr2}$为了执行和的归约,在NumPy支持向量化运算和^{} 的情况下,我们的输出将简单地-
这可以用^{} 作为矩阵乘法进一步优化,如下-
请注意,如果您的意思是
input
的长度是D-1
,那么我们需要进行一些编辑:input_arr[row,col-1]
而不是input_arr[row,col]
。在input_arr
而不是input_arr[:,1:D+1]
。在基于^{} -
相关问题 更多 >
编程相关推荐