绘制Vasicek模型。只能将大小为-1的数组转换为python标量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绘制Vasicek模型。只能将大小为-1的数组转换为python标量相关的知识,希望对你有一定的参考价值。
[尝试绘制Vasiceks投资组合损失分布图,当我想为每个时间步长在0和1之间建立x的数字数组时,我遇到了问题。
x.astype(int)
x = np.arange(0.000001, 1, 0.000001)
a1 = math.sqrt((1-rho)/rho)
a2 = -1/(2*rho)*((math.sqrt(1-rho)*norm.ppf(x)-norm.ppf(p)))**2
a3 = ((1/2)*norm.ppf(x))**2
lossdist = a1*math.exp(a2+a3))
以上是我的模型,但是当我运行它时,它进入了lossdist
函数并暂停,生成
TypeError: only size-1 arrays can be converted to Python scalars
我看了一个关于上一个问题的答案,但没有任何效果,尝试使用x.astype(int)
和np.vectorise
解决方案。我该如何解决?
答案
math.exp仅适用于标量输入,但是您要传递数组作为输入。您应该使用numpy.exp,因为它接受一个数组作为输入。
参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.exp.html
以上是关于绘制Vasicek模型。只能将大小为-1的数组转换为python标量的主要内容,如果未能解决你的问题,请参考以下文章
Pandas ValueError:只能将大小为1的数组转换为Python标量
无法将 yolov4 tiny 转换为 tf 模型不能 - 无法将大小为 607322 的数组重塑为形状 (256,384,3,3)
带有 TypeError 的 TensorRT 对象检测:只能将整数标量数组转换为标量索引