Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中计算x*x.T_Python_Numpy_Numpy Ndarray - Fatal编程技术网

如何在python中计算x*x.T

如何在python中计算x*x.T,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,我想计算如下: 但我不知道如何在python中实现这一点,我不想手动实现这一点,而是为此使用预定义的函数,例如来自numpy的函数 但是numpy似乎忽略了x.T应该被转置 代码: 将numpy导入为np x=np.数组([1,5]) print(np.dot(x,x.T))#=26,这不是它应该是的矩阵! 您可以执行以下操作: x = np.array([[1], [5]]) print(np.dot(x, x.T)) 您的原始x的形状为(2,),而您需要的形状为(2,1)。另一种方法是

我想计算如下:

但我不知道如何在python中实现这一点,我不想手动实现这一点,而是为此使用预定义的函数,例如来自numpy的函数

但是
numpy
似乎忽略了x.T应该被转置

代码:

将numpy导入为np
x=np.数组([1,5])
print(np.dot(x,x.T))#=26,这不是它应该是的矩阵!
您可以执行以下操作:

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

print(np.dot(x, x.T))
您的原始
x
的形状为(2,),而您需要的形状为(2,1)。另一种方法是重塑您的
x

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

print(np.dot(x, x.T))
重塑(-1,1)
重塑数组的形状,使其具有1列,并隐式地考虑行数

输出:

[[ 1  5]
 [ 5 25]]

当向量定义为一维数组时,可以使用
np.outer

np.outer(x, x.T)
> array([[ 1,  5],
>       [ 5, 25]])
或者,也可以将向量定义为矩阵并使用正规矩阵乘法:

x = np.array([[1], [5]])
x @ x.T
> array([[ 1,  5],
>       [ 5, 25]])

我应该补充一点,我想对任意维数的x进行此操作,如何以这种方式重塑数组`np.重塑(x,len(x))只会把x还给我。@OnkelZukunft添加了重塑。请找到编辑。谢谢。如果你解释一下你提供的代码是如何回答这个问题的,这将是一个更好的答案。这是内部的,点,产品(顾名思义)!你读过
np.dot
文档了吗?
np.matmul(x[:, np.newaxis], [x])