Python 行的内积
我有 看起来像Python 行的内积,python,pandas,Python,Pandas,我有 看起来像 df={'x1':[1,2,3,4], 'x2':[5,6,7,8], 'y1':[1,2,1,1], 'y2':[1,1,1,1], } df=pd.DataFrame(df) 如何在df x1*y1+x2*y2中获得一个新列作为“内积”? 第一次尝试是 x1 x2 y1 y2 1 5 1 1 2 6 2 1 3 7 1 1 4 8 1 1 但失败了 应该很简单,但不知何故找不到任何简单的答
df={'x1':[1,2,3,4],
'x2':[5,6,7,8],
'y1':[1,2,1,1],
'y2':[1,1,1,1],
}
df=pd.DataFrame(df)
如何在df x1*y1+x2*y2中获得一个新列作为“内积”?
第一次尝试是
x1 x2 y1 y2
1 5 1 1
2 6 2 1
3 7 1 1
4 8 1 1
但失败了
应该很简单,但不知何故找不到任何简单的答案,不是吗
df['inner']=(df[['x1','x2']*df[['y1','y2']]).sum(axis=1)
难道不是这样吗:
df['inner']=(df[['x1','x2']*df[['y1','y2']]).sum(axis=1)
您可以使用@EdChum解决方案作为示例。更一般的:
In [5]:
df['inner']=(df['x1'] * df['y1']) + (df['x2']*df['y2'])
df
Out[5]:
x1 x2 y1 y2 inner
0 1 5 1 1 6
1 2 6 2 1 10
2 3 7 1 1 10
3 4 8 1 1 12
您可以使用@EdChum解决方案作为示例。更一般的:
In [5]:
df['inner']=(df['x1'] * df['y1']) + (df['x2']*df['y2'])
df
Out[5]:
x1 x2 y1 y2 inner
0 1 5 1 1 6
1 2 6 2 1 10
2 3 7 1 1 10
3 4 8 1 1 12
我有点困惑,你提到的“内积”(或点积)会产生2x2,但你想把它放到4x1列中吗?您可能希望澄清这一点和/或显示所需的结果。我怀疑这与内积无关,但你提到的内积令人困惑,因为它对如何乘以2个矩阵有一个非常具体的定义。我有点困惑,你提到的“内积”(或点积)会产生2x2,但你想把它放到4x1列中吗?您可能希望澄清这一点和/或显示所需的结果。我怀疑这与内积无关,但你提到内积是令人困惑的,因为它对如何乘以2个矩阵有一个非常具体的定义。