我试图创建一个函数,但它涉及两个不同长度的变量。我的设置如下:具有两个不同长度变量的函数
import pandas as pd
import numpy as np
u = np.random.normal(0,1,50)
t = 25
x = t*u/(1-u)
x = np.sort(x, axis=0)
theta = list(range(1, 1001, 1)
theta = np.divide(theta, 10) # theta is now 1000 numbers, going from 0.1 to 100
fx = np.zeros(1000)*np.nan
fx = np.reshape(fx, (1000,1))
我希望我的功能如下所示:
def function(theta):
fx = 50/theta - 2 * np.sum(1/(theta + x))
return fx
,但它不会工作,因为THETA是长度1000和X的长度为50。我希望它为每个THETA反复工作,并在结尾部分:
np.sum(1/(theta + x)
我希望它将单个theta添加到x中的五十个数字中的每一个。如果我这样做一次,它看起来像:
fx[0] = 50/theta[0] - 2 * np.sum(1/(theta[0] + x))
我能得到这个与工作“for”循环,但我最终需要输入此为最大似然函数,以便使用韩元”工作。有什么想法吗?
尝试地图上每x执行最后一次操作 – sabbahillel