Pandas 对于具有相同尺寸的两个矩阵,矩阵点积失败
我刚刚犯了这个错误,我想不出原因是什么。你能帮我看看吗 这两个数据帧都是4乘4。我不明白他们为什么不能得到点积Pandas 对于具有相同尺寸的两个矩阵,矩阵点积失败,pandas,dot-product,Pandas,Dot Product,我刚刚犯了这个错误,我想不出原因是什么。你能帮我看看吗 这两个数据帧都是4乘4。我不明白他们为什么不能得到点积np.dot将在此处工作。多谢各位 df1 i1 i2 i3 i4 0 1 0.00000 0.000000 0.000000e+00 1 0 0.85935 0.080730 2.948807e-07 2 0 0.00000 0.832259 9.775291e-02 3 0 0.00000
np.dot
将在此处工作。多谢各位
df1
i1 i2 i3 i4
0 1 0.00000 0.000000 0.000000e+00
1 0 0.85935 0.080730 2.948807e-07
2 0 0.00000 0.832259 9.775291e-02
3 0 0.00000 0.002086 8.392081e-01
df2
i1 i2 i3 i4
0 1 0.00000 0.000000 0.000000e+00
1 0 0.83891 0.090042 3.365395e-07
2 0 0.00000 0.809407 1.080944e-01
3 0 0.00000 0.001577 8.176372e-01
df1.dot(df2)
---------------------------------------------------------------------------
数值误差
在()
---->1 df1.点(df2)
点格式的packages\pandas\core\frame.pyc(self,other)
786如果(len(公共)>len(自列)或
787 len(普通)>len(其他索引)):
-->788提升值错误('矩阵未对齐')
789
790 left=self.reindex(列=common,副本=False)
ValueError:矩阵未对齐
您需要在此处添加T
(熊猫的点基于索引和列)
你可以改成numpy
df1.values.dot(df2.values)
array([[1. , 0. , 0. , 0. ],
[0. , 0.72091731, 0.14272102, 0.00872699],
[0. , 0. , 0.67379042, 0.16988895],
[0. , 0. , 0.00301185, 0.68639325]])
或者可以切换轴标签
df1.dot(df2.set_index(df2.columns))
i1 i2 i3 i4
0 1.0 0.000000 0.000000 0.000000
1 0.0 0.720917 0.142721 0.008727
2 0.0 0.000000 0.673790 0.169889
3 0.0 0.000000 0.003012 0.686393
df1.values.dot(df2.values)
array([[1. , 0. , 0. , 0. ],
[0. , 0.72091731, 0.14272102, 0.00872699],
[0. , 0. , 0.67379042, 0.16988895],
[0. , 0. , 0.00301185, 0.68639325]])
df1.dot(df2.set_index(df2.columns))
i1 i2 i3 i4
0 1.0 0.000000 0.000000 0.000000
1 0.0 0.720917 0.142721 0.008727
2 0.0 0.000000 0.673790 0.169889
3 0.0 0.000000 0.003012 0.686393