如何在Python中计算x*xT

Onk*_*nft 0 python numpy numpy-ndarray

我想计算以下内容:

x*xT

但我不知道如何在 python 中执行此操作,我不想手动实现此操作,而是使用预定义的函数,例如 numpy 中的函数。

numpy似乎忽略了 xT 应该被转置。

代码:

import numpy as np

x = np.array([1, 5])

print(np.dot(x, x.T))  # = 26, This is not the matrix it should be!
Run Code Online (Sandbox Code Playgroud)

hdk*_*rgr 5

虽然向量被定义为一维数组,但您可以使用np.outer

np.outer(x, x.T)
> array([[ 1,  5],
>       [ 5, 25]])
Run Code Online (Sandbox Code Playgroud)

或者,您也可以将向量定义为矩阵并使用普通矩阵乘法:

x = np.array([[1], [5]])
x @ x.T
> array([[ 1,  5],
>       [ 5, 25]])
Run Code Online (Sandbox Code Playgroud)