矩阵不对齐错误消息

2024-09-25 16:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下返回的数据帧

ret
Out[3]: 
Symbol            FX      OGDC       PIB       WTI
Date                                              
2010-03-02  0.000443  0.006928  0.000000  0.012375
2010-03-03 -0.000690 -0.007873  0.000171  0.014824
2010-03-04 -0.001354  0.001545  0.000007 -0.008195
2010-03-05 -0.001578  0.008796 -0.000164  0.015955

以及每个符号的以下权重:

^{pr2}$

我试图获得每天的加权回报,并尝试:

port_ret = ret.dot(df3)

但我收到以下错误消息:

ValueError: matrices are not aligned

我的目标是每个日期都有一个加权回报,例如2010年3月2日,如下所示:

weighted_ret = 0.000443*.131243+.006928*.182022+0.000*0.151921+0.012375*.534814 = 0.007937512

我不知道为什么我会得到这个错误,但会很高兴有一个替代的解决办法加权回报


Tags: 数据dateport错误符号outsymboldot
2条回答

检查你调用点积的矩阵的形状。只有当A的第二个轴与B的第一个轴的大小相同时,才能计算矩阵A.dot(B)的点积。
在您的例子中,您有额外的列和日期,这会破坏您的计算。你应该在计算中去掉它。尝试运行port_ret = ret[:,1:].dot(df3[1:]),并检查它是否产生您想要的结果。
对于将来的情况,使用numpy.shape()函数来调试矩阵计算,这是非常有用的工具。在

权重矩阵中有两列:

df3.shape
Out[38]: (4, 2)

将该矩阵的索引设置为Symbol,以获得正确的dot

^{pr2}$

相关问题 更多 >