我有一个问题,我在哪里必须生成一个函数来镜像给定的数学函数:
Probability = e^beta / 1 + e^beta。到目前为止,我生成的代码在输入整数时可以正常工作,但是我需要使用该函数来计算数组的概率。

到目前为止,我的代码:

import math
e = math.e


def likelihood(beta):
  for i in range(beta):
    return (e**(beta)/(1+ e**(beta)))

beta_candidate = np.random.uniform(-5, 5, 50)

likelihood_candidate = likelihood(beta_candidate)


每当我运行代码时,都会遇到一条错误消息,指出:只有整数标量数组才能转换为标量索引。

最佳答案

In [3]: import math

In [4]: e = math.e

In [5]: def likelihood(beta):
   ...:     return [e**i/(1+e**i) for i in beta]
   ...:

In [7]: likelihood_candidate = likelihood(beta_candidate)


由于您将beta_candidate作为numpy数组,因此可以执行矢量化numpy操作:

l = np.exp(beta_candidate)/(1+np.exp(beta_candidate))

关于python - 用Python解释数学函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59149757/

10-11 07:05