(n,) 形数组的点积以给出 n × n 数组

dot product of (n,) shaped arrays to give an n by n array

假设您有一个数组 X,形状为 (n,)

import numpy as np

n = 10
X = np.random.rand(n)

并且您想进行以下点积 XX^TX^T 我的意思是 X).结果应给出一个 n x n 矩阵。但是使用

np.dot(X, X.T)

将给出一个标量。就像它改为 X^T X 一样。除非你做以下事情

X = np.reshape(X, (X.shape[0], 1))
np.dot(X, X.T)

有没有一种无需重塑 numpy 向量的方法?

如果 a 和 b 都是一维数组,numpy.dot(a, b) returns 向量的内积(没有复共轭)。

您可以改用numpy.outer函数:

np.outer(X, X)