绘制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只能将大小为1的数组转换为Python标量

Pandas ValueError:只能将大小为1的数组转换为Python标量

无法将 yolov4 tiny 转换为 tf 模型不能 - 无法将大小为 607322 的数组重塑为形状 (256,384,3,3)

带有 TypeError 的 TensorRT 对象检测:只能将整数标量数组转换为标量索引

将 KerasTensor 对象转换为 numpy 数组以在 Callback 中可视化预测

线程 Thread-5 中的异常:TypeError:只能将整数标量数组转换为标量索引