2017-03-17 29 views
2

我试图让Python中的模型的经济学论文,并在计算功能:可见弃用警告的Python

elif wage_online == max(wages): 
      # after going to online you get the highest wage after cost of education 
      learning_benefit = int(np.int((1 + gamma_online_learning) * x[0]) * exp(np.int(bivariate_distribution[x[0] - 1, x[1] - 1]))) 
      social_benefit = int(((1 + gamma_online_social) * np.int(x[1])) * exp(np.int(bivariate_distribution[x[0] - 1, x[1] - 1]))) 
      sigma_social.append(social_benefit) 
      sigma_learning.append(learning_benefit) 

我收到以下错误

/Users/sa/Documents/Dissertation/first_defiation.py:160: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future 
    learning_benefit = int(np.int((1 + gamma_online_learning) * x[0]) * exp(np.int(bivariate_distribution[x[0] - 1, x[1] - 1]))) 

我试图解决这个问题通过将exp函数中的值包含为np.int,但无济于事。有谁知道警告来自哪个变量?

+0

我猜这个问题与'bivariate_distribution'的输入有关。这是什么包?需要什么类型的输入?什么是'x'? – hpaulj

+0

为每个涉及的变量检查'type(variable_name)'。这将缩小这个问题的范围。 –

回答

3

看起来你错过了一个地方,需要int,方括号中:

social_benefit = (1 + gamma_online_social) * x[1] * exp(
    bivariate_distribution[int(x[0] - 1), int(x[1] - 1)] # needed here for indexing 
) 

在未来,你可以使用warnings.filterwarnings('error')找到报警的准确追踪,这将指向你__getitem__

+0

这是正确的答案,我现在明白为什么,现在这么明显,我想这里的索引 – entercaspa